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

来源:互联网 发布:百度人工智能前景 编辑:程序博客网 时间:2024/06/03 03:16

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


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

总时间限制: 
1000ms 
内存限制: 
65536kB
描述
一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止。如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如"Hello"和"hello"在忽略字母大小写时是相等的。请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。
输入
输入为两行,每行一个字符串,共两个字符串。(请用gets录入每行字符串)(每个字符串长度都小于80)
输出
如果第一个字符串比第二个字符串小,输出一个字符"<"
如果第一个字符串比第二个字符串大,输出一个字符">"
如果两个字符串相等,输出一个字符"="
样例输入
Hellohello
样例输出
=

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

问题分析:(略)

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

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

 

AC的C语言程序如下

/* Bailian2721 忽略大小写比较字符串大小 */#include <stdio.h>#include <ctype.h>#define N 80char 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;}







阅读全文
0 0
原创粉丝点击