1111: 【作】【入门】删除指定字符
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:14
解决:11
题目描述
从键盘输入一个字符串str和一个字符c,删除str中的所有字符c并输出删除后的字符串str。
输入
第一行是一个字符串; (不含空格)
第二行是一个字符。
第二行是一个字符。
输出
删除指定字符后的字符串。
样例输入 复制
sdf$$$sdf$$
$
样例输出 复制
sdfsdf
提示
解法一:假删除
#include <bits/stdc++.h>
using namespace std;
int main(){
string s;
char c;
cin>>s>>c;
//假删除:遍历每个字符,除了要删除的字符c以外,剩余的输出
int i;
for(i = 0;i <s.size();i++){
if(s[i] != c){
cout<<s[i];
}
}
return 0;
}
解法二:真删除
#include <bits/stdc++.h>
using namespace std;
int main(){
//sdf$$$sdf
//当s中含有要删除的字符c时,找到c的位置,并删除
string s;
char c;
cin>>s>>c;
int p = s.find(c); //当s中有c时
while(p != -1){
//删除s中的c
s.erase(p,1);
//计算s中是否还有c
p = s.find(c);
}
cout<<s;
return 0;
}