Bailian2721 忽略大小写比较字符串大小(POJ NOI0107-16)【字符串】

 

问题链接POJ NOI0107-16 忽略大小写比较字符串大小

 

忽略大小写比较字符串大小

 

总时间限制: 

1000ms 

内存限制: 

65536kB

描述

一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止。如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如"Hello"和"hello"在忽略字母大小写时是相等的。请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。

输入

输入为两行,每行一个字符串,共两个字符串。(请用gets录入每行字符串)(每个字符串长度都小于80)

输出

如果第一个字符串比第二个字符串小,输出一个字符"<"
如果第一个字符串比第二个字符串大,输出一个字符">"
如果两个字符串相等,输出一个字符"="

样例输入

Hello
hello

样例输出

=

 

 

 

 

问题链接Bailian2721 忽略大小写比较字符串大小

问题分析:(略)

程序说明:这个程序使用了指针,也可以使用数组下标取字符。进行比较之前如果是大写字母就将其转换为小写字母,然后再比较。

题记:写程序最需要的是逻辑清晰。

 

AC的C语言程序如下:

/* Bailian2721 忽略大小写比较字符串大小 */

#include <stdio.h>
#include <ctype.h>

#define N 80
char s[N], t[N];

int main(void)
{
    char cs, ct, *ps, *pt;

    gets(s);
    gets(t);

    ps = s;
    pt = t;
    do {
        cs = *ps;
        if(isupper(cs))
            cs = tolower(cs);

        ct = *pt;
        if(isupper(ct))
            ct = tolower(ct);

        if(cs < ct) {
            printf("<\n");
            break;
        } else if(cs > ct) {
            printf(">\n");
            break;
        } else {
            if(cs == '\0') {
                printf("=\n");
                break;
            }
            ps++;
            pt++;
        }
    } while(1);

    return 0;
}

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值