OJ地址:https://vjudge.net/problem/OpenJ_Bailian-2721
一般我們用strcmp可比較兩個字符串的大小,比較方法爲對兩個字符串從前往後逐個字符相比較(按ASCII碼值大小比較),直到出現不同的字符或遇到'\0'爲止。如果全部字符都相同,則認爲相同;如果出現不相同的字符,則以第一個不相同的字符的比較結果爲準。但在有些時候,我們比較字符串的大小時,希望忽略字母的大小,例如"Hello"和"hello"在忽略字母大小寫時是相等的。請寫一個程序,實現對兩個字符串進行忽略字母大小寫的大小比較。
Input
輸入爲兩行,每行一個字符串,共兩個字符串。(請用gets錄入每行字符串)(每個字符串長度都小於80)
Output
如果第一個字符串比第二個字符串小,輸出一個字符"<"
如果第一個字符串比第二個字符串大,輸出一個字符">"
如果兩個字符串相等,輸出一個字符"="
Sample Input
Hello
hello
Sample Output
=
思路:
先將字符串的每一個字母轉換爲全大寫(toupper)或者全小寫(tolower),在使用strcmp()函數進行比較。
參考:
程序代碼:
#include<cstdio>
#include<cstring>
#include<cctype>
using namespace std;
int main(){
char str1[81],str2[81];
gets(str1);
gets(str2);
for(int i=0;i<strlen(str1);i++){
str1[i] = toupper(str1[i]);
}
for(int i=0;i<strlen(str2);i++){
str2[i] = toupper(str2[i]);
}
int cmp = strcmp(str1,str2);
if(cmp<0){
printf("<\n");
}else if(cmp>0){
printf(">\n");
}else {
printf("=\n");
}
return 0;
}
運行結果: