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;
}
/*
函数功能:比较字符串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;
}