c语言修炼内功,助你升级打怪!!-创新互联
                                            目录

引言:
一、库函数模拟实现
1.1模拟实现Strlen-求字符串的长度
1.2strcpy-复制字符串
1.3strcat-追加字符串
1.4strstr-查找是否存在
引言:
武侠小数中,想要成为练就绝世武功,必先要练就内功,只有内功厉害,在练其他招式时,就能发挥他大的功力。

c语言的内功,必然就是C语言库函数的模拟实现
一、库函数模拟实现 1.1模拟实现Strlen-求字符串的长度三种方法:
方式一:计数器方法:
//计数器方式
size_t my_strlen(const char * str)
{
int count = 0;
while(*str)  //‘\0’的ascii值为0
{
count++;
str++;
}
return count;
}strlen函数返回的是‘\0’前面的字符个数。
1.参数指向的字符必须要以“\0”,结尾。
2.size_t,返回的值无符号的.
方式二:递归法
//使用递归函数
int my_strlen(const char * str)
{
if(*str == '\0')
return 0;
else
return 1+my_strlen(str+1);
}递归法在使用的口诀就是“大事化小法”。
方式三:函数指针
int my_strlen(char *s)
{
char *p = s;
while(*p != ‘\0’ )
p++;
return p-s;
}指针-指针得到的是该字符串的个数。
1.2strcpy-复制字符串strcpy的几个特点:1.源字符串必须以“\0”结束
2.会将“\0”拷贝到目标地址
3.目标空间必须足够大,以确保能放下原字符串
char * my_strcpy(char * dest,char* src){
      char * ret=dest;      //先把目标的指针保存起来,返回的时候才能找到原始的指针
      assert(dest && src);
      while(*dest++ = *src++){         //后置++ ,先使用后++
          ;
 }
}strcat的几个特点:1.源字符串必须以“\0”结束
2.会将“\0”追加到目标地址中
3.目标空间必须足够大,以确保能放下原字符串
char * my_strcat(char *dest,char *src){
   assert(det && src);
   char * ret=dest;
   while(*dest){
      dest++;
 }
   while(*dest ++ =*src++){
    ;
 }
   return ret;
}查找str2字符串是不是str1字符串的一部分;
char * my_strstr ( const char *str1, const char * str2){
     assert(str1 && str2);
     char *ret= str1;
     char *s1,s2;
    while(*ret){
     s1=ret;
     s2=str2;
     while(s1 & s2 & (*s1 == *s2)){
       s1++;
       s2++;
     }
     ret++;
   }
  return ret;
}int my_strcmp (const char * src, const char * dst)
{
int ret = 0 ;
assert(src != NULL);
assert(dest != NULL);
while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
++src, ++dst;
if ( ret< 0 )
ret = -1 ;
else if ( ret >0 )
ret = 1 ;
return( ret );
}感谢你看到这里哦!!!
你的点赞是我前进的动力!!
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
新闻标题:c语言修炼内功,助你升级打怪!!-创新互联
浏览地址:http://www.scyingshan.cn/article/djddoi.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 