CCF CSP 201409-3 字符串匹配
2017-10-19 17:07
274 查看
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址
第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感。
第三行包含一个整数n,表示给出的文字的行数。
接下来n行,每行包含一个字符串,字符串由大小写英文字母组成,不含空格和其他字符。
1
5
HelloWorld
HiHiHelloHiHi
GrepIsAGreatTool
HELLO
HELLOisNOTHello
HiHiHelloHiHi
HELLOisNOTHello
CCF CSP 201409-3 字符串匹配
问题描述
给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选项关闭时,表示同一个字母的大写和小写看作相同的字符。输入格式
输入的第一行包含一个字符串S,由大小写英文字母组成。第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感。
第三行包含一个整数n,表示给出的文字的行数。
接下来n行,每行包含一个字符串,字符串由大小写英文字母组成,不含空格和其他字符。
输出格式
输出多行,每行包含一个字符串,按出现的顺序依次给出那些包含了字符串S的行。样例输入
Hello1
5
HelloWorld
HiHiHelloHiHi
GrepIsAGreatTool
HELLO
HELLOisNOTHello
样例输出
HelloWorldHiHiHelloHiHi
HELLOisNOTHello
样例说明
在上面的样例中,第四个字符串虽然也是Hello,但是大小写不正确。如果将输入的第二行改为0,则第四个字符串应该输出。评测用例规模与约定
1<=n<=100,每个字符串的长度不超过100。代码
C++#include <iostream> #include <cctype> using namespace std; int main() { string a; cin >> a; bool casesen; cin >> casesen; int N; cin >> N; for(int n=0; n<N; n++) { string b; cin >> b; bool found = false; for(int i=0; i<=b.size()-a.size(); i++) { int j; for(j=0; j<a.size(); j++) { if(casesen) { if(a[j]!=b[i+j]) break; } else { if(tolower(a[j])!=tolower(b[i+j])) break; } } if(j==a.size()) { found = true; break; } } if(found) cout << b << endl; } }
相关文章推荐
- CCF CSP 201409-2 画图
- CCF CSP 201409-2画图(C语言)
- CCF CSP 201409-4 最优配餐
- CCF CSP 201409-1 相邻数对
- CCF CSP 编程题目和解答-----试题名称:画图-------201409-2
- CCFCSP 201409-2 画图
- 【CCF CSP】 201409-2 画图(100分)
- CCF CSP试题 201409-2 画图
- 【CCFCSP】201409-3 字符串匹配
- CCF CSP 201409-1 相邻数对
- CCF-CSP 201409-4 最优配餐(BFS)
- CCF CSP 201409-2 画图
- CCF CSP 编程题目和解答-----试题名称:相邻数对-------201409-1
- [ACM]CCF CSP [201409-5]E题 拼图
- CCFCSP 201409-1相邻数对
- CCF 201409-3 字符串匹配 题解
- 第九届CCF CSP认证 第三题:权限查询
- CCF-CSP 201412-4 最优灌溉(prim算法版本)
- CCF csp第九次认证考试 试题三 权限查询
- CCF 201409-2