题目:
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
输入
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
输出
删除输入的短字符串(不区分大小写)并去掉空格,输出。
样例输入
in
#include
int main()
{
printf(” Hi “);
}
样例输出
#clude
tma()
{
prtf(“Hi”);
}
提示
注:将字符串中的In、IN、iN、in删除。
链接:
没有链接…原来的九度oj挂掉了…
代码:
#include<fstream>
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
const int maxn = 110;
int main(){
// freopen("a.txt", "r", stdin);
int startPos, curPos, len1, len2;
string s1, s2, s3;
char str[maxn];
gets(str);
s1 = str;
len1 = s1.length();
// 转化为小写字母
for (int i = 0; i < len1; ++i){
s1[i] = tolower(s1[i]);
}
while (gets(str)){
s2 = s3 = str;
len2 = s2.length();
for (int i = 0; i < len2; ++i){
s2[i] = tolower(s2[i]);
}
// 删掉短字符串
curPos = s2.find(s1, 0);
while (curPos != string::npos){
s2.erase(curPos, len1);
s3.erase(curPos, len1);
curPos = s2.find(s1, curPos);
}
// 删掉空格
len2 = s3.length();
curPos = s3.find(' ', 0);
while (curPos != string::npos) {
s3.erase(curPos, 1);
curPos = s3.find(' ', curPos);
}
cout << s3 << endl;
}
return 0;
}