1196 - C语言7.20
读入两个字符串s1和s2,比较这两个字符串。若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。输出的非零值应该是相比较的两个字符串第一个不相同位置的字符ASCII差值,例如”And”和”Aid”比较,根据第2个字符的比较结果,应输出5。
要求不要使用strcpy和strcmp函数。
Input
两行字符串。保证每个字符串的长度不超过100。
Output
两个字符串的比较结果。
请注意行尾输出换行。
Examples
Input
I am a program. I am not a program.
Output
-13
Solution C
#include<stdio.h> #include<string.h> int main() { char a[102],b[102]; int i,k,l1,l2,l; gets(a); gets(b); l1=strlen(a); l2=strlen(b); l=l1<l2?l1:l2; for(k=0,i=0;i<l;i++) { if(a[i]<b[i]){printf("-%d\n",b[i]-a[i]);k++;break;} if(a[i]>b[i]){printf("%d\n",a[i]-b[i]);k++;break;} } if(k==0) printf("0\n"); return 0; }
Solution C++
#include <stdio.h> #include <string.h> int main() { char str[2][101]; int i, retVal = 0; for (i = 0;i < 2;i++) gets(str[i]); for (i = 0;str[0][i] != '\0' && str[1][i] != '\0';i++) if (str[0][i] != str[1][i]) break; retVal = str[0][i] - str[1][i]; printf("%d\n", retVal); return 0; }