首页 > 专题系列 > C基础练习 > C语言程序设计-忽略大小写比较字符串[综合应用]
2013
11-19

C语言程序设计-忽略大小写比较字符串[综合应用]

10062 忽略大小写比较字符串

【问题描述】一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符比较(按

                        ASCII码值大小比较),直到出现不同的字符或遇到’\0’为止。如果全部字符都相同,则认为相同;

                        如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。但在有些时候,我们比较字符串

                        的大小时,希望忽略字母的大小,例如"Hello"和"hello"在忽略字母大小写时是相等的。请写一个程序,

                        实现对两个字符串进行忽略字母大小写的大小比较。

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

【输出形式】如果第一个字符串比第二个字符串小,输出一个字符'<';

                        如果第一个字符串比第二个字符串大,输出一个字符'>';

                        如果两个字符串相等,输出一个字符'='。

【样例输入】Hello

                    hello

【样例输出】=

【样例说明】样例的两个字符串相等。

【评分标准】本题共4个测试点,每个测试点0.25分,共1.0分。

#include <stdio.h>
#include <string.h>
int main()
{
	char a[20];
	char b[20];
	//读入两个字符串
	gets(a);
	gets(b);

	//处理字符串
	int i;
	for (i=0;a[i] != '\0';i++)
	{
		if (a[i]>='A' && a[i] <= 'Z')
		{
			a[i] = a[i] + 32 ;
		}
	}

	for (i=0;b[i] != '\0';i++)
	{
		if (b[i]>='A' && b[i] <= 'Z')
		{
			b[i] = b[i] + 32 ;
		}
	}

	// printf("%s %s",a,b);
	if (strcmp(a,b) == 0)
	{
		printf("%c\n",'=');
	}
	else if (strcmp(a,b) < 0)
	{
		printf("%c\n",'<');
	}
	else
	{
		printf("%c\n",'>');
	}
	
	return 0;
}

 


  1. 您没有考虑 树的根节点是负数的情况, 若树的根节点是个很大的负数,那么就要考虑过不过另外一边子树了

  2. 有两个重复的话结果是正确的,但解法不够严谨,后面重复的覆盖掉前面的,由于题目数据限制也比较严,所以能提交通过。已更新算法