7、编一个程序,将两个字符串s1和s2比较,若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。不要用strcmp函数。两个字符串用gets函数读入。输出的正数或负数的绝对值应是相比较的两个字符相应的ASCII码的差值。
时间: 2023-12-29 20:23:15 浏览: 72
两个字符串相比较的方法
好的,根据您的要求,我已经理解您的问题了。下面是一个用C语言编写的程序,实现了您所需的功能:
```
#include <stdio.h>
int main() {
char s1[100], s2[100];
int i = 0, result = 0;
printf("请输入字符串s1:");
gets(s1);
printf("请输入字符串s2:");
gets(s2);
while (s1[i] != '\0' && s2[i] != '\0') {
if (s1[i] > s2[i]) {
result = s1[i] - s2[i];
break;
} else if (s1[i] < s2[i]) {
result = s1[i] - s2[i];
break;
}
i++;
}
if (result == 0 && s1[i] == '\0' && s2[i] == '\0') {
printf("两个字符串相等,输出0\n");
} else if (result > 0) {
printf("s1>s2,输出一个正数:%d\n", result);
} else {
printf("s1<s2,输出一个负数:%d\n", result);
}
return 0;
}
```
该程序首先从用户处获取两个字符串s1和s2,然后使用while循环逐个比较两个字符串的字符,如果找到一个不同的字符,就计算它们的ASCII码差值并将其存储在result变量中。如果在比较完两个字符串的所有字符后,仍然没有找到不同的字符,则说明两个字符串相等,输出0。如果找到了不同的字符,就根据它们的ASCII码差值来输出正数或负数。
阅读全文