问题描述
一般我们用strcmp
可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按 ASCII 码值大小比较),直到出现不同的字符或遇到'\0'
为止。如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准(注意:如果某个字符串遇到'\0'
,而另一个字符串还未遇到'\0'
,则前者小于后者)。
但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如"Hello"
和"hello"
在忽略字母大小写时是相等的。请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。
输入
输入为两行,每行一个字符串,共两个字符串。(每个字符串长度都小于 8080 且只包含大小写字母)
输出
如果第一个字符串比第二个字符串小,输出一个字符"<"
;
如果第一个字符串比第二个字符串大,输出一个字符">"
;
如果两个字符串相等,输出一个字符"="
。
Sample 1
Inputcopy |
Outputcopy |
Hellohowareyou
helloHowareyou |
= |
解题思路 :定义两个字符串,逐个输入字符串的每一个字符,将所有小写字母转换为大写字母,利用strcmp函数进行比较,结果等于0输出“=”,结果小于0输出“<”,结果大于0输出“>”
注:strcmp函数头文件为#include<string.h>
#include<stdio.h>
#include<string.h>
int main(void)
{
int i;
char a[200],b[200];
fgets(a,200,stdin);
fgets(b,200,stdin);
for(int i=0;i<strlen(a);i++)
{
if(a[i]>='a'&&a[i]<='z')
a[i]=a[i]-32;
}
for(int i=0;i<strlen(b);i++)
{
if(b[i]>='a'&&b[i]<='z')
b[i]=b[i]-32;
}
int t=strcmp(a,b);
if(t==0)
printf("=");
else if(t<0)
printf("<");
else
printf(">");
return 0;
}