完整代码:
// 模拟 strcmp 字符串比较函数,实现字符串大小的比较
#include<stdio.h>
//strcmp函数是两个字符串自左向右逐个字符相比(按 ASCII 值大小相比较),直到出现不同的字符或遇 \0 为止,如果字符全部相等,就比较字符串长度,字符串长度也相等时,两个字符串相等
#include<string.h>
//传入两个指向要比较字符串的地址的指针
int my_strcmp(const char *str1,const char *str2){//从左到右,用数组的方式得到字符串中的字符int i=0;//两个字符串自左向右逐个字符相比直到出现遇到\0 while (str1[i]!='\0'&&str2[i]!='\0'){//字符相等时,比较下一个字符if (str1[i]==str2[i]){i++;//直接跳出这次循环,不用执行后续代码continue;}else if (str1[i]>str2[i]){//1代表大于return 1;}else if (str1[i]<str2[i]){//-1代表小于return -1;}}//当两个字符串最后一个字符同时为\0时,此时说明前面字符全部相等,并且两个字符串长度也相等if (str1[i]=='\0'&&str2[i]=='\0'){//0代表相等return 0;}//当某个字符串先出现\0,另外一个字符串不是\0,说明这个字符串的长度小于另外一个字符串,则这个字符串更小if (str1[i]=='\0'){return -1;}if (str2[i]=='\0'){return 1;}
}
int main()
{char str1[]="abc";char str2[]="bbc";printf("%d\n",my_strcmp(str1,str2));printf("%d\n",strcmp(str1,str2));return 0;
}
运行截图: