字符串比较多实例

ICPC--1155: 字符串比较多实例

题目描述

比较字符串大小,但比较的规则不同字典序规则。字符比较新规则如下:A < a < B < b < ………… < Z < z。

输入

输入数据包含多个测试实例,每个测试实例占两行,每一行有一个字符串(只包含大小写字母, 长度小于10000)。

输出

如果第一个字符串小于第二个,输出YES,否则,输出NO。 注意:A < a < B < b < ………… < Z < z。

样例输入

abc
Bbc
Ab
a
ABcef
ABce

样例输出

YES
YES
NO

代码

#include
#include
int main(){
    char buf1[10001], buf2[10001];
    int len1, len2,len;
    double num1, num2;  //数字化表示的结果
    while (scanf("%s%s",buf1,buf2)!=EOF)
    {
        len1 = strlen(buf1);
        len2 = strlen(buf2);
        len = len1 > len2 ? len1 : len2;
        for (int i = 0; i < len+1; i++) // len+1 表示考虑两个串的末尾 '\0'
        {
            if (buf1[i] >= 'A'&&buf1[i] <= 'Z'){
                num1 = (int)(buf1[i] - 'A')-0.5;
            }
            else if (buf1[i]>='a'&&buf1[i]<='z')
            {
                num1 = (int)(buf1[i] - 'a');
            }
            else
            {
                num1 = -1;  //比较到了 '\0' ,结果应该是NO ,故第一个应大于第二个数字
            }
            
            if (buf2[i] >= 'A'&&buf2[i] <= 'Z'){
                num2 = (int)(buf2[i] - 'A') - 0.5;
            }
            else if (buf2[i] >= 'a'&&buf2[i] <= 'z')
            {
                num2 = (int)(buf2[i] - 'a');
            }
            else
            {
                num2 = -2; //比较到了 '\0',结果应该是NO,故第二个应该小于第一个数字
            }
 
            if (num1num2)
            {
                printf("NO
");
                break;
            }
        }
        memset(buf1, '\0', 10001);
        memset(buf2, '\0', 10001);
    }
}

ICPC--1156: 单数变复数

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章