一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按 \text{ASCII}ASCII 码值大小比较),直到出现不同的字符或遇到\0为止。如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准(注意:如果某个字符串遇到\0,而另一个字符串还未遇到\0,则前者小于后者)。
但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如Hello和hello在忽略字母大小写时是相等的。请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。
输入
输入为两行,每行一个字符串,共两个字符串。(每个字符串长度都小于 8080)
输出
如果第一个字符串比第二个字符串小,输出一个字符<;
如果第一个字符串比第二个字符串大,输出一个字符>;
如果两个字符串相等,输出一个字符=。
样例
输入
Hello, how are you?
hello, How are you?
输出
=
#include<iostream>
/*#include<string.h>
#include<cstdio>
#include<algorithm>*/
using namespace std;
string s,s2;
int strcmp(string s1,string s2){
if(s1.length()>s2.length())return 0x3f3f3f;
if(s1.length()<s2.length())return -0x3f3f3f;
for(int i=0;i<s1.length();i++){
if(s1[i]<s2[i])return -0x3f3f3f;
if(s1[i]>s2[i])return 0x3f3f3f;
}
return 0;
}
int main(){
getline(cin,s);
getline(cin,s2);
for(int i=0;i<s.length();i++){
if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')s[i]=tolower(s[i]);
}
for(int i=0;i<s2.length();i++){
if(s2[i]>='a'&&s2[i]<='z'||s2[i]>='A'&&s2[i]<='Z')s2[i]=tolower(s2[i]);
}
if(!strcmp(s,s2))cout<<'=';
else if(strcmp(s,s2)<0)cout<<'<';
else cout<<'>';
}
这个哪里错了?