题目描述
源代码
#include<iostream>
#include<cstring>
using namespace std;
const int N = 100;
//CCF 2014-09-3 字符串匹配
int main()
{
char key[N + 1], s[N + 1], lowkey[N + 1], lower[N + 1];
int opt, n;
cin >> key >> opt >> n;
strcpy(lowkey, key);
strlwr(lowkey);
for (int i = 1; i <= n; i++)
{
cin >> s;
if (opt == 0)//大小写无关
{
strcpy(lower, s);
strlwr(lower);
if (strstr(lower,lowkey))
{
cout << s << endl;
}
}
else
{
if (strstr(s, key))
cout << s << endl;
}
}
return 0;
}
关于这题
strcpy 字符串拷贝
strlwr 全变成小写
定义:strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。
char str2 = “cdef”;
char str1 = “abcdefgh”;
则通过函数,将返回
strstr(str1,str2) = cdefgh;
如果str1不包含有str2。
char str2 = “cxef”;
char str1 = “abcdefgh”;
则通过函数,将返回
strstr(str1,str2) = NULL;