使用C语言编写:编写一个程序,对两个字符串s1和s2进行比较。若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。不要使用strcmp函数,两个字符串用gets函数读入。输出的正数或负数的绝对值是相比较的两个字符串相应字符的ASCII码的差值。例如,‘a’与‘c’比,由于‘a’<‘c’,应输出负数,由于‘a’与‘c’的ASCII码值相差2,因此输出2。比如and与aid比较,根据第2个字符比较结果,‘n’>‘i’,故输出5
时间: 2023-06-13 11:02:23 浏览: 147
以下是使用C语言编写的程序:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char s1[100], s2[100];
int i = 0, j = 0, diff = 0;
printf("输入第一个字符串:");
gets(s1);
printf("输入第二个字符串:");
gets(s2);
while (s1[i] != '\0' && s2[j] != '\0')
{
if (s1[i] > s2[j])
{
diff = s1[i] - s2[j];
printf("%d", diff);
return 0;
}
else if (s1[i] < s2[j])
{
diff = s1[i] - s2[j];
printf("%d", diff);
return 0;
}
i++;
j++;
}
if (s1[i] == '\0' && s2[j] == '\0')
{
printf("0");
}
else if (s1[i] == '\0')
{
printf("%d", -s2[j]);
}
else
{
printf("%d", s1[j]);
}
return 0;
}
```
程序首先通过`gets()`函数分别读入两个字符串`s1`和`s2`。然后,程序使用两个变量`i`和`j`来遍历两个字符串。在遍历过程中,程序比较`s1[i]`和`s2[j]`的大小,并根据比较结果计算两个字符的ASCII码差值。如果`diff`大于0,则`s1`大于`s2`,输出正数;如果`diff`小于0,则`s1`小于`s2`,输出负数;如果`diff`等于0,则`s1`等于`s2`,输出0。如果两个字符串的长度不相同,则程序会继续比较较短字符串的下一个字符和`\0`的大小关系,并根据比较结果输出相应的值。最后,程序返回0表示正常结束。
阅读全文