题目描述
一般我们用
strcmp
可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按
码值大小比较),直到出现不同的字符或遇到
\0
为止。如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准(注意:如果某个字符串遇到
\0
,而另一个字符串还未遇到\0,则前者小于后者)。
但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如
Hello
和
hello
在忽略字母大小写时是相等的。请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。
输入为两行,每行一个字符串,共两个字符串。(每个字符串长度都小于
80
)
如果第一个字符串比第二个字符串小,输出一个字符
<
;
如果第一个字符串比第二个字符串大,输出一个字符
>
;
如果两个字符串相等,输出一个字符
=
。
样例输入
Hello, how are you?
hello, How are you?
样例输出
=
数据范围与提示
分类标签
[字符串] [字符数组]
C++题解代码
#include <bits/stdc++.h>
using namespace std;
string a;
string b;
int c;
int g;
char d;
char e;
// 描述该功能...
int fn(char x) {
if ((x >= 'A') && (x <= 'Z')) {
x = (char)((int)x+g);
}
return x;
}
// The main procedure
int main() {
getline(cin, a);
getline(cin, b);
g = ((int)'a'-(int)'A');
c = 0;
for (int i = 0; i < a.size(); i++) {
d = fn(a[i]);
e = fn(b[i]);
if (d > e) {
c = 1;
break;
} else if (d < e) {
c = 2;
break;
}
}
if (c == 0) {
cout<<"=";
} else if (c == 1) {
cout<<">";
} else {
cout<<"<";
}
return 0;
}
Blockly题解代码图片