CCF 201409-3 字符串匹配
#include<bits/stdc++.h> using namespace std; string eple[101]; int main() { string src; cin >> src; int open = 0 , n = 0; cin >> open >> n; for(int i = 0 ; i < n ; i++) { cin >> eple[i]; } if(open == 0) { //大小写不敏感 string src_low; transform(src.begin(),src.end(),back_inserter(src_low),::tolower); for(int i = 0 ; i < n ; i++) { string eple_low; transform(eple[i].begin(),eple[i].end(),back_inserter(eple_low),::tolower); if(eple_low.find(src_low) != string::npos) { cout << eple[i] <<"\n"; } } } else { for(int i = 0 ; i < n ; i++) { if(eple[i].find(src) != string::npos) { cout << eple[i] <<"\n"; } } } }
改题目思路很好想,我的想法就是:
1.如果是大小写不敏感的时候,将所有的字符串都先改成小写,在进行判断
2.如果大小写敏感的时候就直接判断。
如果用C++的STL就很好写出来了呀!!
关键点有:
1.C++没有直接转大小写的函数,通过transform进行的转换。(记忆)
2.判断是否找到字符串的写法,也就是find方法返回的值。没有找到的时候返回的是string::npos
然后就可以AC了

浙公网安备 33010602011771号