题目
一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按ASCII码值大小比较),直到出现不同的字符或遇到’\0’为止。
如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。
但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如”Hello”和”hello”在忽略字母大小写时是相等的。
请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。
输入格式
输入为两行,每行一个字符串,共两个字符串。注意字符串中可能包含空格。
数据保证每个字符串的长度都不超过80。
输出格式
如果第一个字符串比第二个字符串小,输出一个字符”<”。
如果第一个字符串比第二个字符串大,输出一个字符”>”。
如果两个字符串相等,输出一个字符”=”。
输入样例:
Hello
hello
输出样例:
=
题解
使用函数将大写字母变为小写字母
#include <cstdio>
#include <cstring>
#include <cctype>//使用tolower函数 和 toupper函数 需要的头文件
int main()
{
char a[100], b[100];
fgets(a, 100, stdin);
fgets(b, 100, stdin);
if (a[strlen(a) - 1] == '\n') a[strlen(a) - 1] = 0; //去除回车
if (b[strlen(b) - 1] == '\n') b[strlen(b) - 1] = 0;
for (int i = 0; a[i]; i ++ ) a[i] = tolower(a[i]);//使用tolower函数,将大写字母变为小写字母
for (int i = 0; b[i]; i ++ ) b[i] = tolower(b[i]);
int t = strcmp(a, b);
if (t == 0) puts("=");
else if (t < 0) puts("<");
else puts(">");
return 0;
}
这里使用toupper函数,将小写字母变为大写字母也可以