int my_strcmp(const char *s1, const char *s2);
int my_strncmp(const char *s1, const char *s2, size_t n);
/* 两个字符串比较
* s1 greater than s2 return 1
* s1 equal to s1 return 0
* s1 less then s2 return -1
*/
int my_strcmp(const char *s1, const char *s2)
{
assert(NULL != s1);
assert(NULL != s2);
/*先比较字符是否相等 在判断其中一个是否为空*/
while ( *s1 == *s2 && *s1 )
{
s1++;
s2++;
}
return *s1 - *s2 > 0 ? 1 : *s1 - *s2 == 0 ? 0 : -1 ;
}
/* 两个字符串比较前n个字符( n >= 0 )
* s1 greater than s2 return 1
* s1 equal to s1 return 0
* s1 less then s2 return -1
*/
int my_strncmp(const char *s1, const char *s2, size_t n)
{
assert ( NULL != s1 );
assert ( NULL != s2 );
assert ( n > -1 );
if ( !n )
{
return 0;
}
/*先比较字符是否相等 再n-- 再判断其中一个是否为空*/
while( *s1 == *s2 && --n && s1 )
{
s1++;
s2++;
}
return *s1 - *s2 > 0 ? 1 : *s1 - *s2 == 0 ? 0 : -1 ;
}