int strcmp(const char* str1,const char* str2)
int main(){ char* p1 = "abcdef";//6 char* p2 = "sqwer";//5 int ret = strcmp(p1, p2);//对应字符 分别比较ASCII码值 printf("%dn", ret);//-1 return 0;} 标准规定: 第一个字符串大于第二个字符串 则返回大于0的数字 第一个字符串等于第二个字符串 则返回0 第一个字符串小于第二个字符串 则返回小于0的数组模拟实现strcmp 迭代1: int my_strcmp(const char* str1, const char* str2){ assert(str1 &&str2); //比较 while (*str1 == *str2) { if (*str1==' ') { return 0;//相等 } str1++; str2++; } if (*str1 > *str2) return 1;//大于 else return -1;//小于}int main(){ char* p1 = "abc"; char* p2 = "abcd"; int ret = my_strcmp(p1, p2); printf("%dn", ret);//0} 迭代2:如果想要返回值不为1和-1,而是大于0和小于0的数: int my_strcmp(const char* str1, const char* str2){ assert(str1 &&str2); //比较 while (*str1 == *str2) { if (*str1 == ' ') { return 0;//相等 } str1++; str2++; } return(*str1 - *str2);}int main(){ char* p1 = "abc"; char* p2 = "abcd"; int ret = my_strcmp(p1, p2); printf("%dn", ret);//0}