C语言库函数学习【string.h】之strcmp_(const char * str1,const char * str2)
C语言库函数学习【string.h】之strcmp_(const char * str1,const char * str2)
代码如下:
#include<stdio.h>
/*
函数功能:比较字符串str1 and str2
参数描述:
str1:字符串
str2:字符串
返回值:str1小于str2返回-1
str1等于str2返回
str1大于str2返回
*/
int strcmp_(const char * str1,const char * str2)
{
if(NULL == str1 || NULL == str2)
return 0;
int ret=0;
/*
转化为unsigned char 是为了防止溢出
例如(char)0x7f-(char)0x80=255, (unsigned char)0x7f-(unsigned char)0x80=-1
*/
while( *str1 && ! (ret = *(unsigned char *)str1- *(unsigned char *)str2))
{
str1++;
str2++;
}
if( ret<0)
ret=-1;
else if(ret>0)
ret=1;
return ret;
}