直接上代码
因为vs环境下 1 > 2 返回 1 ; 1 < 2 返回 -1 所以下方分成了两份
而在另外一些编译器下就可能不一样(gcc返回的就是他们的相减后的结果)
int my_strcmp(const char * str1 , const char * str2)
{
while(*st1 == *str2 && *string1 != '\0')//当遇到\0就需要停止了
{
str1++;
ste2++;
}
return *str1 - *str2;
}
int my_strcmp(const char* string1, const char* string2)
{
assert(string1 && string2);
while (*string1 == *string2 && *string1 != '\0')//找到不相等的字符
{
string1++;
string2++;
}
if ((*string1 - *string2) == 0)
return 0;
else
return (*string1 - *string2)>0?1:-1; //vs环境下1大于2返回1 , 1<2 返回-1 1 = 2 返回 0
}