![](https://i-blog.csdnimg.cn/blog_migrate/8b810d20ba036d7b803a5178a5479fc1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/26a926c95d2376d2b812ad6210c2f055.png)
![](https://i-blog.csdnimg.cn/blog_migrate/07489a428492d7fa2d7edefc66f4eabb.png)
例题1:
![](https://i-blog.csdnimg.cn/blog_migrate/4320090d4b54c07a881f57b7f4769f43.png)
代码:
//
// 104.cpp
// 字符串的查找删除
//
// Created by chenmeiqi on 2019/5/4.
// Copyright © 2019年 chenmeiqi. All rights reserved.
//
#include <iostream>
#include <string>
using namespace std;
int main(int argc, const char * argv[]) {
string s;
string in;
string tmp;
cin>>s;
transform(s.begin(), s.end(), s.begin(), ::tolower); // 转小写
getchar(); // 处理一溜在输入缓冲的换行符
while (getline(cin,in)) { // 读取包含空格的一整行
tmp=in; // 保存一个输入
transform(tmp.begin(), tmp.end(), tmp.begin(), ::tolower); // 将其转小写
size_t pos=tmp.find(s); // 取特定字符串
while (pos>=0&&pos<=tmp.size()) {
tmp=tmp.erase(pos,s.size());
in=in.erase(pos,s.size());
pos=tmp.find(s);
}
size_t npos=in.find(" "); // 去空格
while (npos>=0&&npos<=in.size()) {
in=in.erase(npos,1);
npos=in.find(s);
}
cout<<in<<endl; // 最后输出的大小写要跟输入一致
}
return 0;
}
分析:
![](https://i-blog.csdnimg.cn/blog_migrate/e2c1c613793ac1747bcb06defd725b8c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a9f86c513b74541372bfb5c2fda8b386.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7fd20df0db84e3ae83681c13a219d92c.png)