当前位置: 代码迷 >> 综合 >> 字符串查找-xdoj
  详细解决方案

字符串查找-xdoj

热度:6   发布时间:2023-12-06 09:21:56.0

标题    
字符串查找

类别
字符串处理

时间限制    
2S

内存限制    
256Kb

问题描述    
给出一个字符串和多行文字,输出在这些文字中出现了指定字符串的行。
程序还需要支持大小写敏感选项:
    当选项打开时,表示同一个字母的大写和小写看作不同的字符;
    当选项关闭时,表示同一个字母的大写和小写看作相同的字符。

输入说明    
输入数据第一行包含一个字符串s,由大小写英文字母组成,长度不超过100。
第二行包含一个数字,表示大小写敏感选项。当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感。
第三行包含一个整数n,表示给出的文字行数。
接下来n行,每行包含一个字符串,字符串由大小写英文字母组成,不含空格和其他字符。每个字符串长度不超过100。

输出说明    
输出多行,每行包含一个字符串,按出现的顺序依次给出那些包含了字符串s的行。

输入样例    
Hello
1
5
HelloWorld
HiHiHelloHiHi
GrepIsAGreatTool
HELLO
HELLOisNOTHello

输出样例    
HelloWorld
HiHiHelloHiHi
HELLOisNOTHello


拷贝函数:strcpy

大写转换小写函数:strlwr

查找字符串函数:strstr



 

#include<stdio.h>
#include<string.h>
int main()
{int n,op,i;char s[100],p[100],xs[100],xp[100];scanf("%s%d%d",s,&op,&n);strcpy(xs,s); strlwr(xs);for(i=0;i<n;i++){scanf("%s",p);if(op==1){if(strstr(p,s))printf("%s\n",p);}else{strcpy(xp,p);strlwr(xp);if(strstr(xp,xs))printf("%s\n",p);}}return 0;
}