样例输入:
Hello
1
5
HelloWorld
HiHiHelloHiHi
GrepIsAGreatTool
HELLO
HELLOisNOTHello
思路:
区分大小写的时候,把字母都转换成小写的再查找 ;要注意的是,输出的是未改变大小写的原字符串。
涉及字符串用法:
if(str.find(s)!=-1)
常用ASCII码:65~90为26个大写英文字母,97~122号为26个小写英文字母。所以大写变小写加32.
100分代码:
//201409-3字符串匹配
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s,str;
int flag,n;
cin >> s >> flag >> n;
if(flag==1)//区分大小写
{
for(int i=0;i<n;i++)
{
cin >> str;
if(str.find(s)!=-1)
{
cout << str << endl;
}
}
}
else//区分大小写--把字母都转换成小写的再查找
{
for(int i=0;i<s.size();i++)
{
if(s[i]<'a')
s[i]+=32;
}
for(int i=0;i<n;i++)
{
string str1;
cin >> str1;
str=str1;//注意,输出的是未改变大小写的原字符串
for(int j=0;j<str.size();j++)
{
if(str[j]<'a')
str[j]+=32;
}
if(str.find(s)!=-1)
cout << str1 << endl;
}
}
return 0;
}