练习16H题,判断字符串子相等
题目如下:
判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。
输入描述:两行,每行包含一个字符串(长度小于1000)
输出描述:若两个字符串相等,输出YES,否则输出NO。
此题目的难点在于判断字符串是否相等,忽略空格,然后大写转换成小写,为同一个字母
创建一个关于转换的函数,字符串类型,代码如下:
string flag(const string &a,const string &b)
{
string c;
string d;
for(char ch : a)
{
if(ch != ' ')
{
c += tolower(ch);
}
}
for(char ch : b){
if(ch != ' ')
{
d += tolower(ch);
}
}
return (c == d) ? "YES" : "NO";
}
难点在于遍历字符串的每一个元素,并转换
剩下的代码就比较简单了
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
string flag(const string &a,const string &b)
{
string c;
string d;
for(char ch : a)
{
if(ch != ' ')
{
c += tolower(ch);
}
}
for(char ch : b)
{
if(ch != ' ')
{
d += tolower(ch);
}
}
return (c == d) ? "YES" : "NO";
}
int main()
{
string a;
string b;
getline(cin,a);
getline(cin,b);
string c = flag(a,b);
cout << c << endl;
return 0;
}

