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