问题 E: C语言10.30

题目描述

写一个函数,实现两个字符串的比较过程。即自己写一个 strcmp 函数,函数的原型为:int strcmp(char *p1, char *p2)。设 p1 指向字符串 s1,p2 指向字符串 s2。要求当 s1=s2 时,返回值为 0;若 s1≠s2,返回它们二者第一个不同字符的 ASCII 码差值(例如”BOY”与”BAD”,第二个字母不同,’O’与’A’之差为 79-65=14)。如果 s1>s2,则输出正值;如果 s1<s2,则输出负值。

输入

有两行,每行有一个不包含空格的字符串,即参与比较的两个字符串。保证每个字符串的长度都不超过 200。

输出

只有一个整数,即 strcmp 比较两个字符串的返回值。
请注意行尾输出换行。

样例输入

1
2
ThisisLarger.
ThisissMALLER.

样例输出

1
-39

提示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
using namespace std;
int strcmp(char *p1,char *p2){
int a,b;
for(;*p1==*p2&&(*p1!='\0'||*p2!='\0');p1++,p2++);
a=*p1-*p2;
a==0?b=0:b=*p1-*p2;
return b;
}
int main(){
char s1[200],s2[200];
cin>>s1>>s2;
cout<<strcmp(s1,s2)<<endl;
}