768. 忽略大小写比较字符串大小

文章目录

  • ​​Question​​
  • ​​Ideas​​

    ​​Code​​

Question

一般我们用 strcmp 可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按 ASCII 码值大小比较),直到出现不同的字符或遇到 \0 为止。

如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。

但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如 Hello 和 hello 在忽略字母大小写时是相等的。

写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。

输入格式
输入为两行,每行一个字符串,共两个字符串。注意字符串中可能包含空格。

数据保证每个字符串的长度都不超过 80。

输出格式
如果第一个字符串比第二个字符串小,输出一个字符 <。

如果第一个字符串比第二个字符串大,输出一个字符 >。

如果两个字符串相等,输出一个字符 =。

输入样例:
Hello
hello

输出样例:

=

Ideas

将两个字符串先都字符统一,后进行比较

Code

#include <iostream>
#include <string>

using namespace std;

int main()
{
string a,b;
getline(cin,a);
getline(cin,b);


int n_a = a.size();
int n_b = b.size();

for (int i = 0; i < n_a; i ++)
{
if ('a'<= a[i] && a[i] <= 'z')
a[i] -= 32;
}
for (int i = 0; i < n_b; i ++)
{
if ('a'<= b[i] && b[i] <= 'z')
b[i] -= 32;
}

if (a > b)
cout << '>';
else if (a < b)
cout << '<';
else
cout << '=';

return 0;
}