我想字符串1>字符串2就打印1
字符串1<字符串2就打印2
等于就打印3
为什么这个字符串无论怎样都打印1
可以帮我修改一下吗
【以下回答由 GPT 生成】
问题的原因在于使用了break
语句,导致只比较了两个字符串的首字母,而没有继续比较后续字母。正确的做法是遍历每个字符,并在比较完所有字符后根据结果输出对应的数字。以下是修改后的代码:
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Shenzhen";
char str2[] = "Guangfggsxg";
int result = 0;
// 获取两个字符串的长度
int len1 = strlen(str1);
int len2 = strlen(str2);
// 比较两个字符串
int i;
for (i = 0; i < len1 && i < len2; i++) {
if (str1[i] > str2[i]) {
result = 1;
break;
}
else if (str1[i] < str2[i]) {
result = 2;
break;
}
}
// 如果两个字符串前面所有字符都相等,则比较字符串长度
if (result == 0) {
if (len1 > len2) {
result = 1;
}
else if (len1 < len2) {
result = 2;
}
else {
result = 3;
}
}
// 输出结果
printf("%d", result);
return 0;
}
经过修改后的代码会正确地比较两个字符串,并输出对应的数字。
【相关推荐】