首页 > 试题广场 >

编一个程序,将两个字符串s1和s2比较,若s1s2,输出一

[问答题]

编一个程序,将两个字符串s1s2比较,若s1>s2,输出一个正数;若s1=s2,输

0;若s1<s2,输出一个负数。不要用strcpy函数。两个字符串用gets函数读入。输出

的正数或负数的绝对值应是相比较的两个字符串相应字符的ASCII码的差值。例如,"A

”C”相比,由于"A"<"C”,应输出负数,同时由于’A'’C'ASCII码差值为2,因此应输出

-2”。同理:"And”和"Aid”比较,根据第2个字符比较结果,"n"”i”大5,因此应输出“5”。

推荐

#include<stdio.h>

int main( )

{int i,resu;

char s1[100],s2[100];

printf("input string1:");

gets(s1);

printf("\ninput string2:");

gets(s2);

i=0;

while((s1[i]==s2[i])&&(s1[i!=l=’\0’))i++:

if(s1[i]==’\0’&& s2[i]==’\0’)

resu=0;

else

resu=s1[i]-s2[i];

printf("\nresult:%d.\n",resu);

return 0;

}


发表于 2018-03-25 10:37:41 回复(0)
链接:https://www.nowcoder.com/questionTerminal/4fafdb33c7a94d98a2f84579d73d3bf7
来源:牛客网

#include<stdio.h>
#include<string.h>
char compare(char line1[],char line2[])
{
    int length1 = strlen(line1);
    int length2 = strlen(line2);
    int max = (length1>length2)?length1:length2;
    int cnt = 0;
    for(int i = 0; i < max; i ++)
    {
        if(line1[i] != line2[i])
        {
            cnt = (int)(line1[i] - line2[i]);
            break;
        }
    }
    return (cnt);
}
int main()
{
   char s1[100];
   char s2[100];
   printf("input two strings:");
   gets(s1);
   gets(s2);
   int cnt=compare(s1,s2);
   printf("\nresult:%d\n",cnt);
   return 0;
}


发表于 2023-11-20 17:32:33 回复(0)
借鉴楼上的 改了改
#include<stdio.h>
#include<string.h>
char compare(char line1[],char line2[])
{
    int length1 = strlen(line1);
    int length2 = strlen(line2);
    int max = (length1>length2)?length1:length2;
    int cnt = 0;
    for(int i = 0; i < max; i ++)
    {
        if(line1[i] != line2[i])
        {
            cnt = (int)(line1[i] - line2[i]);
            break;
        }
    }
    return (cnt);
}
int main()
{
   char s1[100];
   char s2[100];
   printf("input two strings:");
   gets(s1);
   gets(s2);
   int cnt=compare(s1,s2);
   printf("\nresult:%d\n",cnt);
   return 0;
}

发表于 2022-12-09 11:55:30 回复(0)
#include<stdio.h>
#
include<iostream>
//不允许程序在不保证完全正确下运行!
int main(){
 
 char a[100];
 char b[100];
 gets(a);
 gets(b);
 
 int i;
 for (i = 0; a[i] != 0 && b[i] != 0; i++){
  int temp = a[i] - b[i];
  if (temp > 0){
   printf("%d", temp);
   break;
  }
  if (temp < 0){
   printf("%d", temp);
   break;
  }
 }
 if (a[i] == 0 && b[i] != 0){
  printf("-%d", b[i]);
 }
 if (a[i] == 0 && b[i] == 0){
  printf("0");
 }
 if (a[i] != 0 && b[i] == 0){
  printf("%d", a[i]);
 }
 
 system("pause");
 return 0;
}
发表于 2020-03-01 17:32:30 回复(0)
#include <stdio.h>
#include <string.h>
int compare(char line1[], char line2[]){
 int length1 = strlen(line1);
 int length2 = strlen(line2);
 int max = (length1 - length2)?length1:length2;
 int cnt = 0;
 for(int i = 0; i < max; i ++){
  if(line1[i] != line2[i]){
   cnt = (int)(line1[i] - line2[i]);
   return (cnt > 0)?1:-1;
  }
 }
 return 0;
}
int main(){
 char line1[100] ;
 char line2[100] ;
 gets(line1);
 gets(line2);
 char line3[100];
 strcpy(line3,line1);
 puts(line3);
 printf("%d \n", compare(line1,line2));
 printf("%d \n", strcmp(line1,line2));
}
发表于 2020-01-01 17:07:11 回复(0)
#include<stdio.h>
#include<string.h>
int main()
{
char a[100],b[100],sum1=0,sum2=0,i=0,j=0;
gets(a);
gets(b);
while(a[i]!='\0')sum1+=a[i++];
while(b[j]!='\0')sum2+=b[j++];
printf("%d\n",sum1-sum2);
return 0;
}
编辑于 2019-11-26 21:42:09 回复(0)