100000580 - 《算法笔记》3.6小节——入门模拟->字符串处理《问题 C: 字符串的查找删除》
(AC)
#include <iostream>
#include <cstring>
using namespace std;
int compare(char a, char b){
if(a<='z' && a>='a') a='A'+a-'a';
if(b<='z' && b>='a') b='A'+b-'a';
if(a == b) return 1;
return 0;
}
void getString(char s[]){
char c;
int k = 0;
while((c=getchar()) != EOF){
s[k++] = c;
}
s[k] = '\0';
}
int main(){
freopen("input.txt", "r", stdin);
char s1[10010], s2[10010], ans[10010];
scanf("%s", &s1);
getchar();
getString(s2);
//scanf("%[^EOF]", &s2);
int len1 = strlen(s1);
int len2 = strlen(s2);
int id = 0;
for(int i = 0; i < len2; i++){
if(compare(s2[i], s1[0])){
int k = i;
int flag = 1;
for(int j = 0; j < len1; j++){
if(compare(s1[j], s2[k++]) == 0){
flag = 0;
break;
}
}
if (flag){
i = i + len1;
}
}
while(s2[i] == ' '){
i++;
}
ans[id++] = s2[i];
}
printf("%s\n", ans);
return 0;
}
笔记:代码里有一行注释掉的,使我在CSDN上找的读取多行数据的代码。在我的编译器上确实可以实现,输出正确的结果。可是就是AC不了,后面就换了一种方式去读取多行数据,也就是getString函数,(函数名随便取的),就AC了。