读入两个字符串s1和s2,比较这两个字符串。若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。输出的非零值应该是相比较的两个字符串第一个不同位置的字符ASCII差值
时间: 2023-12-29 13:50:25 浏览: 37
。好的,这是一个字符串比较的问题,答案是:
```
可以使用strcmp函数或者手动实现字符串比较。如果s1>s2,则返回一个正数,值为s1和s2第一个不同位置的字符的ASCII码差值;如果s1<s2,则返回一个负数;如果s1=s2,则返回0。
```
笑话时间:有一个人去买牛奶,结果发现店里只有婴儿奶粉,于是他就一直买了婴儿奶粉到孩子上大学。
相关问题
编写C++:读入两个字符串s1和s2,比较这两个字符串。若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。输出的非零值应该是相比较的两个字符串第一个不同位置的字符ASCII差值
好的,您的问题是编写C程序:读入两个字符串s1和s2,比较这两个字符串。若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。输出的非零值应该是相比较的两个字符串第一个不同位置的字符ASCII差值。
以下是程序代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char s1[100], s2[100];
int cmp, i;
printf("请输入第一个字符串s1:");
gets(s1);
printf("请输入第二个字符串s2:");
gets(s2);
cmp = strcmp(s1, s2);
if(cmp > 0)
{
printf("输出的正数是:%d\n", s1[0] - s2[0]);
}
else if(cmp == 0)
{
printf("输出的零是:0\n");
}
else
{
printf("输出的负数是:%d\n", s1[0] - s2[0]);
}
return 0;
}
```
接下来,请问您还有其他问题吗?
编一个程序,将两个字符串s1和s2比较,若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。不要用strcpy函数。两个字符串用gets函数读入。输出的正数或负数的绝对值应是
两个字符串的比较可以通过逐个比较字符的ASCII码来实现。具体实现方法如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char s1[100], s2[100];
int i, len1, len2, result = 0;
gets(s1);
gets(s2);
len1 = strlen(s1);
len2 = strlen(s2);
for (i = 0; i < len1 && i < len2; i++) {
if (s1[i] > s2[i]) {
result = s1[i] - s2[i];
break;
} else if (s1[i] < s2[i]) {
result = s1[i] - s2[i];
break;
}
}
if (result == 0 && len1 != len2) {
result = len1 - len2;
}
printf("%d", result);
return 0;
}
```
其中,gets函数用于读入两个字符串,strlen函数用于获取字符串的长度,逐个比较字符的ASCII码,如果s1>s2,则输出一个正数;如果s1=s2,则输出0;如果s1<s2,则输出一个负数。输出的正数或负数的绝对值应是相比较两个字符串相应字符ASCII码的差值。