比较字符串大小并输出ASCII码差值(终极版)
编写一个程序,将两个字符串s1和s2比较,若s1>s2,输出一个正数,若s1=s2,输出0,若s1<s2,则输出一个负数。输出的正数或负数的绝对值应是相比较的两个字符串相应字符的ASCII码的差值。例如,“A”与“C”相比,由于“A”<“C”,应输出负数,同时由于‘A’与‘C’的ASCII码差值为2,因此应输出“-2”。同理,“And”和“Aid”比较,根据第2个字符比较结果,‘n’比‘i’大5,因此应输出“5”。
#include <stdio.h>
#include<string.h>
int main()
{
int i,x1,x2,n1=0,n2=0,p,m1,m2;
char s1[10],s2[10];
scanf("%s%s",s1,s2);
m1=strlen(s1);
m2=strlen(s2);
printf("数组s1中输入的字符个数是:%d 个\n",m1);
printf("数组s2中输入的字符个数是:%d 个\n",m2);
//*********************************
//计算数组s1中字符串的ASCII码的和
printf("数组s1中输入的字符的ASCII码分别是:");
for(i=0;i<m1;i++)
{
x1=(int)s1[i];printf("%d ",x1);
n1=n1+x1;
}
printf(", ");
printf("ASCII码之和为:%d\n",n1);
//*********************************
//计算数组s2中字符串的ASCII码的和
printf("数组s2中输入的字符的ASCII码分别是:");
for(i=0;i<m2;i++)
{
x2=(int)s2[i];printf("%d ",x2);
n2=n2+x2;
}
printf(", ");
printf("ASCII码之和为:%d\n",n2);
//**********************************
//比较大小并求出差值
if(n1>n2) {printf("可得:s1>s2\n");}
else if(n1<n2){printf("可得:s1<s2\n");}
else if(n1==n2){printf("可得:s1=s2\n");}
p=n1-n2;
printf("其差值为:%d\n",p);
return 0;
}
strlen大法真是妙啊!
感谢观看。