strcpy函数、strlen函数、strcat函数、strcmp函数

此文章为截取以下两篇文章的部分内容
http://blog.youkuaiyun.com/herveyhuang/article/details/39755991
https://www.cnblogs.com/heyonggang/p/3196922.html
展现的都是这几个函数的源码即功能,没有实例
strcpy函数:拷贝字符串

char *strcpy(char *Dest , const char *Src)  
{  //将src中的字符串拷贝到dest中,并且覆盖掉原来位置上的字符
    assert((Dest != NULL) && (Src != NULL));  
    char *address = Dest;  
    while((*Dest++ = *Src++) != '\0')  
        NULL;  
    return address;  
} 

strlen函数:返回目标字符串的长度

unsigned int mystrlen(const char* str)  
{  
    assert(str != NULL);  
    unsigned int len = 0;  
    while(*str++)  
    {  
        len++;  
    }  
    return len;  
} 

strcat函数:连接两个字符串

char *strcat(char *strDest, const char *strSrc)  
{  //将strsrc接到strdest后
  // 后文return address,故不能放在assert断言之后声明address  
  char *address = strDest;  
  assert((strDest != NULL) && (strSrc != NULL)); //对源地址和目的地址加非0断言  
  while(*strDest)             //是while(*strDest!=’\0’)的简化形式  
  {  
    //若使用while(*strDest++),则会出错,因为循环结束后strDest还会执行一次++,  
    //那么strDest将指向'\0'的下一个位置。/所以要在循环体内++;因为要是*strDest最后指  
    //向该字符串的结束标志’\0’。  
    strDest++;  
  }  

  while(*strDest++ = *strSrc++)  
  {  
    NULL;             //该循环条件内可以用++,  
  }                   //此处可以加语句*strDest=’\0’;无必要  
  return address;     //为了实现链式操作,将目的地址返回  
} 

strcmp函数:比较两个字符串

int strcmp(const char* str1, const char* str2)  
{  //比较str1和str2两个字符串的大小
   assert((str1 != NULL) && (str2 != NULL);  
   int ret = 0;  
   while (!(ret = (unsigned char*)*str1 - (unsigned char*)*str2) && (*str2))  
   {  
      str1++;  
      str2++;  
   }  
   if (ret > 0)  
   {  
        return 1;  
   }  
   else if (ret < 0)  
   {  
        return -1  
   }  
   return 0;  
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值