实现功能:
字符串s1与字符串s2进行比较
s1<s2 : -1
s1=s2 : 0
s1>s2 : 1
实现过程:字符串s1与字符串s2的元素一一比较(比较的是ASCII码值大小)
#include <stdio.h>
#include <string.h>
int my_strcmp(char *s1, char *s2) {
/* != 0 等同 != '\0' */
while ((*s1 != 0) || (*s2 != '\0')) {
if (*s1 == *s2) {
// 相等不需要做处理, 继续比较下一个元素
} else {
if (*s1 > *s2) {
return 1; // 源>目标
} else {
return -1; // 源<目标
}
}
s1++;
s2++;
}
return 0;
}
// 字符串s1与字符串s2进行比较
int main() {
int ret;
char s1[64] = {0}, s2[64] = {0};
printf("请输入第一个字符串s1: "); // 123abc
gets(s1); // gets() -- 获取输入的字符串
printf("请输入第二个字符串s2: "); // 456qwe
gets(s2);
printf("第一个字符串:%s\n", s1);
printf("第二个字符串:%s\n", s2);
ret = my_strcmp(s1, s2);
printf("my_strcmp:%d\n", ret);
// 使用库函数 strcmp() 进行结果对比
ret = strcmp(s1, s2);
printf("strcmp:%d\n", ret);
return 0;
}
运行结果