CCF-CSP 201409-3 字符串匹配
题目描述
知识点
字符串的大小写转换
string a,aLower;
aLower = a;
transform(a.begin(),a.end(),aLower.begin(),::tolower);
注意tolower前面的::
字符串中查找子串
C++的string类提供了字符串中查找另一个字符串的函数find。
其重载形式为:string::size_type string::find(string &);
功能为在string对象中,查找参数string类型的字符串是否存在,如果存在,返回起始位置。不存在则返回 string::npos。
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
string pattern, line,lineLower;
int flag;
int n;
cin >> pattern >> flag >> n;
//大小写敏感
if (flag) {
while (n--) {
cin >> line;
if (line.find(pattern) != string::npos) {
cout << line << endl;
}
}
}
//大小写不敏感
else {
transform(pattern.begin(),pattern.end(),pattern.begin(),::tolower);
while (n--) {
cin >> line;
lineLower = line;
transform(line.begin(),line.end(),lineLower.begin(),::tolower);
if (lineLower.find(pattern) != string::npos) {
cout << line << endl;
}
}
}
}