16:忽略大小寫的字串比較

自為風月馬前卒發表於2017-02-28

16:忽略大小寫的字串比較

總時間限制: 
1000ms
 
記憶體限制: 
65536kB
描述

一般我們用strcmp可比較兩個字串的大小,比較方法為對兩個字串從前往後逐個字元相比較(按ASCII碼值大小比較),直到出現不同的字元或遇到'\0'為止。如果全部字元都相同,則認為相同;如果出現不相同的字元,則以第一個不相同的字元的比較結果為準(注意:如果某個字串遇到'\0'而另一個字串還未遇到'\0',則前者小於後者)。但在有些時候,我們比較字串的大小時,希望忽略字母的大小,例如"Hello"和"hello"在忽略字母大小寫時是相等的。請寫一個程式,實現對兩個字串進行忽略字母大小寫的大小比較。

輸入
輸入為兩行,每行一個字串,共兩個字串。(每個字串長度都小於80)
輸出
如果第一個字串比第二個字串小,輸出一個字元"<";
如果第一個字串比第二個字串大,輸出一個字元">";
如果兩個字串相等,輸出一個字元"="。
樣例輸入
Hello, how are you?
hello, How are you?
樣例輸出
=
來源
計算概論05
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{ 
char a[81],b[81],c[81];
int d=0,e=0;
gets(a);
gets(b);
for (int i=0;i<=strlen(a);++i)
{
if (a[i]<='Z'&&a[i]>='A')
{
a[i]=a[i];
}
if (a[i]<='z'&&a[i]>='a')
{
a[i]=a[i]-32;
}
}
for (int i=0;i<=strlen(b);++i)
{
if (b[i]<='Z'&&b[i]>='A')
{
b[i]=b[i];
}
if (b[i]<='z'&&b[i]>='a')
{
b[i]=b[i]-32;
}
}
for (int i=0;i<=strlen(a);++i)
{
if (a[i]==b[d])
{
e=1;
}
else
if (a[i]>b[d])
{
e=0;
cout<<">";
break;
}
else
if (a[i]<b[d])
{
e=0;
cout<<"<";
break;
}
d++;
}
if (e==1)
cout<<"=";
return 0;
}

 

相關文章