ANSI C字符串相关的实现

1 strlen

/*

原型:size_t strlen(const char *s)

功能:获取字符串s的长度

说明:

*/

int  stringlen( const   char   * s)
{
       
int i=0;
       
while(*s++)i++//只能是*s++,不能++*s,因为s是const char*
       
return i;
}

 

2 strcmp

/*

原型:extern int strcmp(char *s1,char * s2);

功能:比较字符串s1s2

说明:

        s1<s2时,返回值<0

        s1=s2时,返回值=0

        s1>s2时,返回值>0

*/

int  stringcmp( char   * s1, char   * s2)
{
       
while(*s1||*s2) //如果S1和S2比较完毕, 跳出循环;
       {
              
if(*s1-*s2) //判断S1和S2对应的字符是不是不同;
                     return *s1-*s2; //如果不同,返回S1和S2的ASCII之差;
              else  // 如果相同,让指针指向S1和S2的下一个字符比较
              {
                     s2
++
                     s1
++;
              }

       }

       
return 0// S1和S2相等的时候返回0;
}

 

3 strcopy

/*

原型:char *strcpy(char *dest, const char *src);

功能:拷贝字符串,将src拷到dest

说明:返回的是dest字符串的首地址

*/

char* stringcpy(char* strDest, const char* strSrc)
{
 assert((strDest!=NULL) && (strSrc !=NULL));   //使用断言来防止出错
 char* strAddr = strDest;       //保存返回指针
 while( ((*strDest++=*strSrc++) != '/0') );

 return strAddr;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值