2,948
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
int main(){
char a[110];
char b[110][110];
int n;
int flag;
scanf("%s",a); //读取字符串
scanf("%d",&flag);//读取是否匹配大小写
scanf("%d\n",&n); //读取文字的行数
for(int i=1;i<=n;i++)//读取各行的文字
scanf("%s",b[i]);
if(flag){//处理大小写敏感的分支
for(int i=1;i<=n;i++){
int j=0,k=0;
while(b[i][k]!='\0'){//使用最朴素的匹配方法
if(a[j]==b[i][k]){
j++;
k++;
}
else{
k=k-j+2;
j=0;
}
if(a[j]=='\0'){
printf("%s\n",b[i]);
break;
}
}
}
}else{
for(int i=1;i<=n;i++){
int j=0,k=0;
while(b[i][k]!='\0'){//处理大小写不敏感敏感的分支
if(a[j]==b[i][k]||a[j]-b[i][k]=='a'-'A'||b[i][k]-a[j]=='a'-'A'){
j++;
k++;
}
else{
k=k-j+2;
j=0;
}
if(a[j]=='\0'){
printf("%s\n",b[i]);
break;
}
}
}
}
return 0;
}