3470 - 习题8-17 字符串比较
时间限制 : 1 秒
内存限制 : 12 MB
自己写一个函数实现字符串比较,指定函数原型如下:
int StrCmp(char *s1, char * s2);
若s1和s2完全一样,则返回0,否则返回二者第一个不同字符的ASCII码的差值(如"BOY"和"BAD",第一个字符一样,则比较第二个字符,第二个字符'O'与'A'不同,则计算此字符ASCII码之差79-65=14)。如果s1>s2,输出结果为正值,如果s1<s2,则输出结果为负值。
在main函数中输入两个字符串,调用该函数,得到两个字符串大小关系。输出其ASCII码之差。
题目输入
输入分两行,每行一个字符串(以回车结束)
题目输出
一个整数,单独占一行。表示两个字符串之差。
输入/输出样例
输入格式
BOY BAD
输出格式
14
C语言解答
#include<stdio.h> int main() { char arr1[80],arr2[80];int a; int StrCmp(char *s1, char * s2); gets(arr1); gets(arr2); a=StrCmp(arr1,arr2); printf("%d\n",a); return 0; } int StrCmp(char *s1, char * s2) { int a,i; for(i=0;;i++) { if(*(s1+i)!=*(s2+i)) { a=*(s1+i)-*(s2+i); return a; } } }
C++解答
#include <bits/stdc++.h> using namespace std; int StrCmp(char *s1,char *s2){ for(int i=0;(*s1!='\0'||*s2!='\0');i++){ if(*s1-*s2!=0) return(*s1-*s2); s1++; s2++; } return 0; } int main(){ char a[100],b[100]; scanf("%s%s",a,b); printf("%d",StrCmp(a,b)); return 0; }