独立实现标准字符串库的strcmp函数,即字符串比较函数,从键盘输入两个字符串,按字典序比较大小,前者大于后者输出1,前者小于后者输出-1,两者相等输出0。
时间: 2024-10-09 17:10:08 浏览: 67
在许多编程语言中,标准库通常提供内置的字符串比较函数如C++的`std::compare`,或者C语言的`strcmp`。如果你想独立实现这个功能,可以按照下面的步骤编写一个简单的strcmp-like函数:
```c
#include <stdio.h>
#include <string.h> // 需要使用strlen获取字符串长度
// 自定义strcmp函数
int custom_strcmp(const char* str1, const char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
// 如果其中一个字符串较短,则直接比较
if (len1 != len2) {
return len1 > len2 ? 1 : -1;
}
// 逐字符比较,直到找到第一个不同的字符
for (int i = 0; i < len1; ++i) {
if (str1[i] > str2[i]) {
return 1;
} else if (str1[i] < str2[i]) {
return -1;
}
}
// 如果所有字符都相同,返回0表示相等
return 0;
}
int main() {
char str1[100], str2[100];
printf("请输入第一个字符串: ");
fgets(str1, sizeof(str1), stdin); // 要去除末尾的换行符
str1[strlen(str1) - 1] = '\0'; // 去除多余的换行符
printf("请输入第二个字符串: ");
fgets(str2, sizeof(str2), stdin);
str2[strlen(str2) - 1] = '\0';
int result = custom_strcmp(str1, str2);
switch (result) {
case 1:
printf("字符串 %s 比字符串 %s 大\n", str1, str2);
break;
case -1:
printf("字符串 %s 比字符串 %s 小\n", str1, str2);
break;
case 0:
printf("字符串 %s 和字符串 %s 相等\n", str1, str2);
break;
}
return 0;
}
```
在这个示例中,我们首先获取用户输入的两个字符串,然后通过遍历每个字符并进行比较来确定它们的顺序。如果遇到不同的字符,就立即返回结果;如果遍历完都没有差别,说明字符串相等。
阅读全文