视频讲解:1.7.16 忽略字符串大小写的比较_哔哩哔哩_bilibili
解题思路:
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;
}