112A題目網址
題目解析
1.輸入兩行字符串,不區分大小寫地使用字典序去比較大小
A<B -1
A>B 1
A=B 0
舉例:
輸入
abcdefg
AbCdEfF
輸出
1
2.字典序:在遇到第一個不同的字符時,比較的大小,就是字符串的大小
列舉法:
1.列出所有情況
1)a[i]是大寫,b[i]是小寫
a[i]轉換為小寫(a[i]=a[i]+32)
再比較
a[i]>b[i] break
a[i]<b[i] break
a[i]=b[i]
2)a[i]是小寫,b[i]是大寫
3)a[i]是小寫,b[i]是小寫
4)a[i]是大寫,b[i]是大寫
列舉法代碼
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{char a[100]={'\0'};char b[100]={'\0'};int i,flag=0;scanf("%s",a);scanf("%s",b);for(i=0;i<strlen(a);i++){if(a[i]>='A'&&a[i]<='Z'&&b[i]>='a'&&b[i]<='z'){a[i]=a[i]+32;if(a[i]<b[i]){flag=-1;break;}else if(a[i]>b[i]){flag=1;break;}else if(a[i]==b[i]){flag=0;}}else if(b[i]>='A'&&b[i]<='Z'&&a[i]>='a'&&a[i]<='z'){b[i]=b[i]+32;if(a[i]<b[i]){flag=-1;break;}else if(a[i]>b[i]){flag=1;break;}else if(a[i]==b[i]){flag=0;}}else if(a[i]>='A'&&a[i]<='Z'&&b[i]>='A'&&b[i]<='Z'){if(a[i]<b[i]){flag=-1;break;}else if(a[i]>b[i]){flag=1;break;}else if(a[i]==b[i]){flag=0;}}else if(a[i]>='a'&&a[i]<='z'&&b[i]>='a'&&b[i]<='z'){if(a[i]<b[i]){flag=-1;break;}else if(a[i]>b[i]){flag=1;break;}else if(a[i]==b[i]){flag=0;}}}printf("%d",flag);system("pause");return 0;
}