比较字符串大小,但比较的规则不同字典序规则。字符比较新规则如下:A < a < B < b < ………… < Z < z。
标签:
比较字符串大小,但比较的规则不同字典序规则。字符比较新规则如下:A < a < B < b < ………… < Z < z。
输入数据包含多个测试实例,每个测试实例占两行,每一行有一个字符串(只包含大小写字母, 长度小于10000)。
如果第一个字符串小于第二个,输出YES,否则,输出NO。
注意:A < a < B < b < ………… < Z < z。
#include<iostream> #include<string.h> #include<stdio.h> using namespace std; char a[10000],b[10000]; int main() { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); while(scanf("%s%s",&a,&b)!=EOF) { int lena,lenb,i,temp; lena=strlen(a); lenb=strlen(b); if(strcmp(a,b)==0) { cout<<"NO"<<endl; } else { if(lena>lenb) temp=lena; else temp=lenb; for(i=0;i<temp;i++) { if(a[i]==b[i]) continue; else { if(a[i]>='a'&&a[i]<='z' &&b[i]>='a'&&b[i]<='z' ||a[i]>='A'&&a[i]<='Z' &&b[i]>='A'&&b[i]<='Z') { if(a[i]<b[i]) { cout<<"YES"<<endl; break; } else { cout<<"NO"<<endl; break; } } else if(a[i]>='a' &&a[i]<='z' &&b[i]>='A'&&b[i]<='Z') { if(a[i]-32<b[i]) { cout<<"YES"<<endl; break; } else { cout<<"NO"<<endl; break; } } else if(a[i]>='A' &&a[i]<='Z' &&b[i]>='a'&&b[i]<='z') { if(a[i]+32<=b[i]) { cout<<"YES"<<endl; break; } else { cout<<"NO"<<endl; break; } } else { if(a[i]<b[i]) { cout<<"YES"<<endl; break; } else { cout<<"NO"<<endl; break; } } } } } } return 0; }
标签:
原文地址:http://blog.csdn.net/zuguodexiaoguoabc/article/details/45220167