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;
}
网站题目:【C深度剖析】自实现strcmpstrlenstrcpystrcat
标题来源:
http://jkwzsj.com/article/jgodce.html