OpenJ_Bailian - 2721 忽略大小寫比較字符串大小

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()函數進行比較。

參考:

  1. C/C++庫函數(tolower/toupper)實現大小寫字母之間的轉換
  2. 字符串操作

程序代碼:

#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;
} 

運行結果:

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章