标签:c语言深度剖析 strlen strcmp strcat strcpy
int str_cmp(const char *s1,const char *s2)
{
int ret;
while(!(ret = *(unsigned char *)s1 - *(unsigned char *)s2) && s2++)
s1++,s2++;
if(ret > 0)
ret = 1;
else if(ret <0)
ret = -1;
return ret;
}
int str_len(const char *s)
{
assert(s != 0);
char *start = s;
while(*s++);
return (s - start - 1);
}
char* str_cpy(char *dest,char *src)
{
assert( (dest != 0) && (src != 0));
char* ret = dest;
while(*src)
*dest++ = *src++;
*dest = ‘\0‘;
return ret;
}
char* str_cat(char *dest,char *src)
{
assert((dest != 0) && (src != 0));
char *ret = dest;
while(*dest)
dest++;
while(*src)
*dest++ = *src++;
*dest = ‘\0‘;
return ret;
}本文出自 “沃特” 博客,请务必保留此出处http://water3700348.blog.51cto.com/13058625/1965772
【C深度剖析】自实现 strcmp strlen strcpy strcat
标签:c语言深度剖析 strlen strcmp strcat strcpy
原文地址:http://water3700348.blog.51cto.com/13058625/1965772