思路:较简单,暴力破解+string类。精确匹配,用string类中的find函数即可;模糊匹配,先将需要匹配的字符转为小写字符,在用find函数。
大写转小写字符:s += ‘a’ -‘A’
代码如下:
#include<iostream>
#include<string>
using namespace std;
int main(){
string s;
cin>>s;
int flag,n;
cin>>flag>>n;
string str;
for(int i = 0; i < n; i++){
cin>>str;
if(flag == 0){
string str0 = str;
for(int j = 0; j < str.size(); j++){
if('A' <= str[j] && str[j] <= 'Z'){
str[j] += 'a' - 'A';
}
}
for(int j = 0; j < s.size(); j++){
if('A' <= s[j] && s[j] <= 'Z'){
s[j] += 'a' - 'A';
}
}
if(str.find(s) != -1){
cout<<str0<<endl;
}
}
else{
if(str.find(s) != -1){
cout<<str<<endl;
}
}
}
return 0;
}
本文介绍了一种使用C++进行字符串精确与模糊匹配的方法,通过将大写字母转换为小写,利用string类的find函数实现高效匹配。适用于对大小写不敏感的搜索场景。
324





