练习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;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务