openjudge 1.7.16 忽略大小写的字符串比较

视频讲解:1.7.16 忽略字符串大小写的比较_哔哩哔哩_bilibili

 

OpenJudge - 16:忽略大小写的字符串比较


解题思路:

1.由题可得,比较两个字符串的大小,挨个字符进行比较,如果字符的ASCLL码不同,哪个字符的ASCLL大即输出对应的符号,如果每个字符都相等的话,并且已经比较完,那么开始比较两个字符串的长度,如果相等,则输出=,否则输出对应的符号

2.首先,字符串是带有空格的,所以使用getline的方法来获取两个字符串

3.然后将两个字符串中的所有大写字母改为小写字母

4.找到两个字符串长度的较小值来作为遍历的区间,因为这样可以方便讨论如果字符都相等的话,再根据长度比较大小

5.最后根据第一步的条件,进行判断


#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a,b;
	getline(cin,a);//获取字符串a 
	getline(cin,b);//获取字符串b 

	int len1=a.length();
	int len2=b.length();

	for(int i=0;i<=len1-1;i++)
	{
		if(a[i]>='A'&&a[i]<='Z')
		a[i]=a[i]+32;
	}//将字符串a所有字母转化为小写字母 

	for(int i=0;i<=len2-1;i++)
	{
		if(b[i]>='A'&&b[i]<='Z')
		b[i]=b[i]+32;
	}//将字符串b所有字母转化为小写字母 

	int min;//定义长度的最小值 
	if(len1>len2)
	min=len2;
	else
	min=len1;//获取字符串长度的最小值 

	for(int i=0;i<=min-1;i++)//遍历每个字符 
	{
		if(a[i]==b[i])
		continue;//如果相等的话,继续 
		else if(a[i]>b[i])
		{
			cout<<">";
			return 0;
		}//如果字符串a的字符大,输出大于 
		else
		{
			cout<<"<";
			return 0;
		}//如果字符串b的字符大,输出小于 
	}

	if(len1==len2)//如果所有的字符都相等并且长度相等 
	cout<<"=";
	else if(len1>len2)//如果所有的字符都相等但是a的长度更长 
	cout<<">";
	else//如果所有的字符都相等但是b的长度更长 
	cout<<"<";
	return 0;
 } 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值