strlen(s) | 返回s的长度,不包括字符串结束符null |
strcmp(s1, s2) | 比较两个字符串是否相等,相同返回0 |
strcat(s1, s2) | 将字符串s2连接到s1后 |
strcpy(s1, s2) | 将s2复制给s1,并返回s1 |
//strlen
int strlen(const char *str)
{
assert(str!=NULL);
int len=0;
while((*str++)!='\0')
len++;
return len;
}
//strcmp
int strcmp(const char *str1, const char *str2)
{
assert(str1!=NULL && str2!=NULL);
int ret=0;
while(!(ret=*(unsigned char *)str1-*(unsigned char *)str2) && *str1)
{
str1++;
str2++;
}
if(ret<0)
{
ret=-1;
}
else if(ret>0)
{
ret =1;
}
return ret;
}
//strcat
char *strcat(char *strDest, const char *strSrc)
{
char *address=strDest;
assert(strDest!=NULL && strSrc!=NULL);
while(*strDest!='\0')
strDest++;
while(*strDest++=*strSrc++);
return address;
}
//strcpy
char *strcpy(char *strDest, const char *strSrc)
{
assert(strDest!=NULL && strSrc!=NULL);
char *address=strDest;
while((*strDest++ = *strSrc++)!='\0');
return address;
}