一般我们用 strcmp 可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按 ASCII 码值大小比较),直到出现不同的字符或遇到 \0 为止。
如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。
但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如 Hello 和 hello 在忽略字母大小写时是相等的。
请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。
输入格式
输入为两行,每行一个字符串,共两个字符串。注意字符串中可能包含空格。
数据保证每个字符串的长度都不超过 80。
输出格式
如果第一个字符串比第二个字符串小,输出一个字符 <。
如果第一个字符串比第二个字符串大,输出一个字符 >。
如果两个字符串相等,输出一个字符 =。
输入样例:
Hello
hello
输出样例:
=
AC
这个字符的大小写转换我捣鼓了老半天了啊啊啊啊啊啊
一直记不住
‘a’-‘A’=32
a大的码值要比A多出32来
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
string a,b;
getline(cin,a);
getline(cin,b);
bool f=1;
for(int i=0;i<max(a.length(),b.length());i++){
if(a[i]>='A'&&a[i]<='Z') a[i]=a[i]+32;
if(b[i]>='A'&&b[i]<='Z') b[i]=b[i]+32;
if(a[i]<b[i]){
f=0;
cout << "<";
break;
}
else if(a[i]>b[i]){
f=0;
cout<<">";
break;
}
}
if(f==1)
cout<<"=";
}
优秀展览
看到别的写的代码时,我哭了。
我一直想找这个函数来着,呜呜呜,没有找到啊。
同样的题目都可以写的出来,但是我却话费了更大的力气。
题目原本的考察点可能是下面这个strcmp的比较函数以及它的返回值。
哎,又一次舍本逐末了。