函数说明 strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异。
返回值 若参数s1和s2字符串相同则返回0。s1长度大于s2长度则返回大于0 的值,s1 长度若小于s2 长度则返回小于0的值。
int strcasecmp(const char *s1, const char *s2)
{
int c1, c2;
do {
c1 = tolower(*s1++);
c2 = tolower(*s2++);
} while(c1 == c2 && c1 != 0);
return c1 - c2;
}
函数说明:strncasecmp()用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异
返回值 :若参数s1和s2字符串相同则返回0 s1若大于s2则返回大于0的值 s1若小于s2则返回小于0的值
int strnicmp(const char *s1, const char *s2, int len)
{
unsigned char c1, c2;
if(!len)
return 0;
do{
c1 = *s1++;
c2 = *s2++;
if (!c1 || !c2)
break;
if (c1 == c2)
continue;
c1 = tolower(c1);
c2 = tolower(c2);
if (c1 != c2)
break;
}while(--len);
return (int)c1 - (int)c2;
}
字符串比较实现
int strcmp(const char* strDest,const char* strSrc)
{
assert((strDest != NULL) && (strSrc != NULL));
while (*strDest == *strSrc)
{
if (*strDest == '\0')
{
return 0;
}
++strDest;
++strSrc;
}
return *strDest - *strSrc;
}