题目描述
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
输入
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
输出
删除输入的短字符串(不区分大小写)并去掉空格,输出。
样例输入 Copy
in #include int main() { printf(" Hi "); }
样例输出 Copy
#clude tma() { prtf("Hi"); }
提示
注:将字符串中的In、IN、iN、in删除。
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <vector>
#include <queue>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
string del;
string s, temp;
cin >> del;
getchar();
for(int i = 0; i < del.length(); i++) {//把要删除的那部分变小写
if(del[i] >= 'A' && del[i] <= 'Z') del[i] += 32;
}
while(getline(cin, s)) {
temp = s;//拷贝一份,最后输出拷贝这份
for(int i = 0; i < s.length(); i++) {//将原来这份变小写
if(s[i] >= 'A' && s[i] <= 'Z') s[i] += 32;
}
int k = 0;
for(int i = 0; i < s.length(); i++){
int flag = 1;
if(s[i] == del[k]){//第一个字符相等
for(int w = 0; w < del.length(); w ++){
if(del[w] != s[w + i]){
flag = 0;
break;
}
}
if(flag){//完全相等则跳过这部分
i += del.length() - 1;
}else{//不相等就输出
if(temp[i] != ' '){
cout << temp[i];
}
}
}else{//第一个字符不等
if(temp[i] != ' '){
cout << temp[i];
}
}
}
cout << endl;
}
return 0;
}