编一个程序,将两个字符串s1和s2比较,若s1>s2,输出一个正数;若s1=s2,输出0。。。。(c程序设计第五版P166.14)

编一个程序,将两个字符串s1和s2比较,若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。不要用strcpy函数。两个字符串用gets函数读入。输出的正数或负数的绝对值应是相比较两个字符串相应字符ASCII码的差值。例如“A”与“C”相比,由于“A”<“C”,应输出负数,同时由于‘A’与‘C’的ASSCII码差值为2,因此应输出“-2”。同理:“And”和“Aid”比较,根据第2个字符比较结果,“n”比“i”大5,因此应输出“5”。

#include<stdlib.h>
#include<stdio.h>

#define N 7  //N个元素



int main()

{
   int i,sum=0;
   char s1[N]=".",s2[N]=".";// 以/0填充空白

   gets(s1);     //输入s1,s2
   gets(s2);

   for(i=0;s1[i]!='\0'||s2[i]!='\0';i++)  //两数组每对只要有一个不为\0就可以进行循环(为了减少循环次数)
   {
   
	   

		 sum=sum+s1[i]-s2[i];     //计算差值 
     
   
   }

   printf("%d",sum);    


   system("pause");
   return 0;

}

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以使用strcmp函数来比较两个字符串s1s2,该函数返回一个整数值,表示两个字符串的大小关系。 如果s1>s2,返回一个正数;如果s1=s2,返回;如果s1<s2,返回一个负数。 下面是一个示例程序: #include <stdio.h> #include <string.h> int main() { char s1[100], s2[100]; int result; printf("请输入字符串s1:"); scanf("%s", s1); printf("请输入字符串s2:"); scanf("%s", s2); result = strcmp(s1, s2); if (result > ) { printf("s1大于s2,返回一个正数:%d\n", result); } else if (result == ) { printf("s1等于s2,返回\n"); } else { printf("s1小于s2,返回一个负数:%d\n", result); } return ; } ### 回答2: 这个问题意在考察程语言中字符串比较的方式和方法。以下是一些可能的解决方案: 方案一:使用已有的字符串比较函数 每个程语言都提供了一些用于字符串比较的函数。比如C语言中的strcmp函数,Python中的compare函数等。 假设我们要比较两个字符串分别为s1s2,则C语言中代码可以写成: ```c #include <stdio.h> #include <string.h> int main() { char s1[100]; char s2[100]; int result; printf("请输入s1: "); scanf("%s", s1); printf("请输入s2: "); scanf("%s", s2); result = strcmp(s1, s2); printf("%d", result); return 0; } ``` Python中的代码可以写成: ```python s1 = input("请输入s1:") s2 = input("请输入s2:") result = cmp(s1, s2) print(result) ``` 这两份代码都使用了系统提供的字符串比较函数,在比较完成后输出比较结果。 方案二:将字符串转为数字进行比较 如果要比较字符串都由数字组成,则可以将它们转为数字,再进行比较C语言中我们可以使用atoi函数将字符串转为整数,Python中使用int函数也可以实现。 下面是C语言代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char s1[100]; char s2[100]; int num1, num2; printf("请输入s1: "); scanf("%s", s1); printf("请输入s2: "); scanf("%s", s2); num1 = atoi(s1); num2 = atoi(s2); if (num1 > num2) printf("%d", 1); else if (num1 == num2) printf("%d", 0); else printf("%d", -1); return 0; } ``` Python中的代码也类似: ```python s1 = input("请输入s1:") s2 = input("请输入s2:") num1 = int(s1) num2 = int(s2) if num1 > num2: print(1) elif num1 == num2: print(0) else: print(-1) ``` 不同于方案一,这个方案将字符串转为数字进行比较。但是它无法处理有字符的字符串。如果字符串中存在字母,则无法将其转为数字并进行比较。 ### 回答3: 要一个程序比较两个字符串s1s2的大小,我们可以采用遍历字符串的方式逐一比较字符。具体步骤如下: 1. 首先,定义两个字符串s1s2,并获取它们的长度len1和len2。 2. 然后,使用循环遍历字符串中的所有字符。 3. 对于每个字符,使用ASCII码值进行比较。如果s1中的某一字符的ASCII码值大于s2中对应字符的值,说明s1>s2,此时输出一个正数。如果相等,则继续比较下一位;如果s1中某一字符的ASCII码值小于s2中对应字符的值,说明s1<s2,此时输出一个负数。 4. 如果循环结束后还没有确定大小关系,则说明两个字符串相等,此时输出0。 下面是用Python语言实现这个程序的代码: ``` def compare_str(s1, s2): len1 = len(s1) len2 = len(s2) if len1 > len2: return 1 elif len1 < len2: return -1 else: for i in range(len1): if ord(s1[i]) > ord(s2[i]): return 1 elif ord(s1[i]) < ord(s2[i]): return -1 return 0 s1 = input("请输入字符串1:") s2 = input("请输入字符串2:") result = compare_str(s1, s2) print("字符串1和字符串2的大小关系是:", result) ``` 在这个程序中,我们首先获取了两个字符串的长度len1和len2,并进行比较。如果长度不同,则可直接确定大小关系。如果长度相等,则按照上述步骤进行逐一比较,最后输出结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值