思想:
1、在两个字符串都非空时逐个比较,*str1 - *str2 = det(ascii),非0则返回差值;
2、步骤1比较完成后,必有一个字符串当前位置值为'\0',又有str - '\0' = ascii(str),故再做一次字符串的减法,即可完成比较。
(需要注意的地方是,str++操作必须在return之前,因为要确保退出循环后,字符串指针仍然向后移动了一次)
int StrCmp(char *string1, char *string2) {
int delta;
while (*string1 != '\0' && *string2 != '\0') {
delta = *string1++ - *string2++;
if (delta != 0) {
return delta;
}
}
return *string1 - *string2;
}