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;
}