在忽略大小写的情况下,忘记把b[]复制后再变大写。导致输出的结果不是原始的b[]; 出错。
练习太少了。
#include <iostream>
#include <math.h>#include<algorithm>
#include<iostream>
#include<cstring>
#include <cstdio>
#include <string.h>
using namespace std;
bool panduan(char a[],char b[]){
int d,k,j,t;
bool judge;
d=strlen(b)-strlen(a);
for(int j=0;j<=d;j++){
k=j;
judge=true;
for(t=0;t<strlen(a);t++){
if(a[t]==b[k]){
k++;
}
else{
judge=false;
break;
}
}
if(judge){
return true;
}
}
return false;
}
int main(){
int n,m;
int i,j,k,t,d;
bool judge = true;
char a[105],b[105],c[105];
while(cin>>a){
cin>>n>>m;
if(n==0){
strupr(a);
for(i=0;i<m;i++){
cin>>b;
strcpy(c,b);
strupr(c);
if(panduan(a,c)){
cout<<b<<endl;
}
}
}
else {
for(i=0;i<m;i++){
cin>>b;
if(panduan(a,b)){
cout<<b<<endl;
}
}
}
}
return 0;
}