编写一程序,将字符串s1与字符串s2比较,s1>s2,输出一正数,s1=s2,输出0,s1<s2,输出一负数,不要用strcpy,字符串用gets读入。输出的正负数的绝对值。

#include<stdio.h>
#include<math.h>
#include<string.h>
int main() {
    char str2[20];
    char str1[20];
    int i = 0,j = 0,a,b;
    printf("请输入字符串1:");
    gets_s(str1);
    printf("请输入字符串2:");
    gets_s(str2);
    while (str2[i]!='\0'|| str1[i] != '\0')
    {
        if (str1[i] == str2[i]) {
            a = 0; b = 0;i++;
        } 
        else if (str1[i] > str2[i]) {
            a = str1[i];
            b = str2[i];
            break;
        }
        else {
            a = str1[i];
            b = str2[i]; break;
        }        
    }
    if (a > b)printf("s1>s2,差值为:%d\n", a - b);
    else if (a  == b)printf("s1=s2,差值为:%d\n", a - b);
    else
    {
        printf("s1<s2,差值为:%d\n", a - b);
    }


    return 0;
}
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用strcmp函数来比较两个字符串s1s2的大小关系,该函数返回值为整型,如果s1>s2,则返回正数;如果s1=s2,则返回;如果s1<s2,则返回负数。具体实现代码如下: ```c #include <stdio.h> #include <string.h> int main() { char s1[100], s2[100]; printf("请输入字符串s1:"); scanf("%s", s1); printf("请输入字符串s2:"); scanf("%s", s2); int result = strcmp(s1, s2); if (result > ) { printf("s1大于s2\n"); } else if (result == ) { printf("s1等于s2\n"); } else { printf("s1小于s2\n"); } return ; } ``` 运行程序,输入两个字符串,即可得到它们的大小关系。 ### 回答2: 可以使用strcmp函数进行字符串比较。该函数的原型为: ```c int strcmp(const char *s1, const char *s2); ``` 该函数用于比较两个字符串s1s2的大小关系。如果s1>s2,则返回一个正数;如果s1==s2,则返回0;如果s1<s2,则返回一个负数。 具体实现代码如下: ```c #include <stdio.h> #include <string.h> int main() { char s1[100], s2[100]; int result; printf("请输入字符串s1:"); gets(s1); printf("请输入字符串s2:"); gets(s2); result = strcmp(s1, s2); if (result > 0) { printf("s1>s2,返回值为%d\n", result); } else if (result == 0) { printf("s1=s2,返回值为%d\n", result); } else { printf("s1<s2,返回值为%d\n", result); } return 0; } ``` 这个程序中,主要使用了gets函数获取输入的两个字符串,然后使用strcmp函数进行比较,最后根据比较结果输出相应的语句。 需要注意的是,在使用gets函数时,应特别注意输入的字符串长度不要超过数组的长度,否则可能会导致数组越界和内存破坏的问题。同时,在实际使用中,可以加入错误处理的机制,以便在输入出现错误时及时提示用户并退出程序。 ### 回答3: 要编写一个比较两个字符串大小的程序,我们需要先了解字符串比较规则。在按照字典序比较两个字符串的大小时,我们需要遵循以下规则: 1. 从字符串的第一个字符开始比较,如果两个字符不相同,则比较它们的ASCII码值。ASCII码值较大的字符大于ASCII码值较小的字符。 2. 如果两个字符串的前面若干个字符均相同,则比较它们的长度。长度较短的字符串小于长度较长的字符串。 根据上述规则,我们可以编写以下程序: ``` #include <stdio.h> #include <string.h> int compare(char *s1, char *s2) { int len1 = strlen(s1); int len2 = strlen(s2); int i, j; for (i = 0, j = 0; i < len1 && j < len2; i++, j++) { if (s1[i] > s2[j]) { return 1; } else if (s1[i] < s2[j]) { return -1; } } if (len1 > len2) { return 1; } else if (len1 < len2) { return -1; } else { return 0; } } int main() { char s1[100], s2[100]; printf("请输入字符串s1:"); scanf("%s", s1); printf("请输入字符串s2:"); scanf("%s", s2); int result = compare(s1, s2); printf("%d\n", result); return 0; } ``` 此程序首先输入两个字符串s1s2,然后调用compare函数比较它们的大小,并将结果输出。compare函数的实现如下: 1. 首先获取两个字符串的长度。 2. 利用for循环依次比较两个字符串的每个字符。如果两个字符不相等,则根据ASCII码值关系返回1或-1。 3. 如果两个字符串前缀的所有字符都相等,则根据长度关系返回1或-1。 4. 如果两个字符串完全相等,则返回0。 在程序运行时,我们可以输入任意两个字符串进行比较输出的结果为正数、零或负数,分别代表第一个字符串大于、等于或小于第二个字符串

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值