读入两个字符串s1和s2,比较这两个字符串。若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。输出的非零值应该是相比较的两个字符串第一个不相同位置的字符ascii差值,例如”and”和”aid”比较,根据第2个字符的比较结果,应输出5。 要求不要使用strcpy和strcmp函数。
时间: 2023-04-28 15:02:39 浏览: 109
可以使用循环逐个比较字符串中的字符,找到第一个不相同的字符后,输出它们的ascii码差值即可。如果两个字符串长度不同,需要在比较时判断其中一个字符串是否已经到达结尾,如果已经到达结尾,则认为它比另一个字符串更小。具体实现可以参考以下代码:
#include <stdio.h>
int main() {
char s1[100], s2[100];
int i = , diff = ;
printf("请输入字符串s1:");
scanf("%s", s1);
printf("请输入字符串s2:");
scanf("%s", s2);
while (s1[i] != '\' || s2[i] != '\') {
if (s1[i] == '\') {
diff = -s2[i];
break;
} else if (s2[i] == '\') {
diff = s1[i];
break;
} else if (s1[i] != s2[i]) {
diff = s1[i] - s2[i];
break;
}
i++;
}
printf("比较结果为:%d\n", diff);
return ;
}
相关问题
读入两个字符串s1和s2,比较这两个字符串。若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。输出的非零值应该是相比较的两个字符串第一个不同位置的字符ASCII差值
。好的,这是一个字符串比较的问题,答案是:
```
可以使用strcmp函数或者手动实现字符串比较。如果s1>s2,则返回一个正数,值为s1和s2第一个不同位置的字符的ASCII码差值;如果s1<s2,则返回一个负数;如果s1=s2,则返回0。
```
笑话时间:有一个人去买牛奶,结果发现店里只有婴儿奶粉,于是他就一直买了婴儿奶粉到孩子上大学。
读入两个字符串s1和s2,比较这两个字符串。若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。输出的非零值应该是相比较的两个字符串第一个不同位置的字符ASCII差值
可以直接用strcmp函数进行字符串比较,该函数的返回值为0表示两个字符串相等,返回值小于0表示第一个不同位置的字符ASCII值在s1中较小,返回值大于0表示在s1中较大。例如:
char s1[100], s2[100];
scanf("%s%s", s1, s2);
int res = strcmp(s1, s2);
printf("%d", res);
阅读全文