1635: 【作】【入门】字符替换

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:12 解决:5

题目描述

把一个字符串中特定的字符全部用给定的字符替换,得到一个新的字符串。

输入

只有一行,由一个字符串和两个字符组成,中间用单个空格隔开。字符串是待替换的字符串,字符串长度小于等于100个字符,且不含空格等空白符;
接下来一个字符为需要被替换的特定字符;
接下来一个字符为用于替换的给定字符。

输出

一行,即替换后的字符串。

样例输入 复制

hello-how-are-you o O

样例输出 复制

hellO-hOw-are-yOu

提示

C/C++提示:

分别掌握使用s[i]直接更改以及replace函数替换的实现;

解法一:

#include <bits/stdc++.h> 
using namespace std;
int main(){
    //判断每个字符是否是要替换的字符
	//如果是,则直接替换成新字符 
    string s; 
	char c1,c2;
    cin>>s>>c1>>c2;
    int i;
    for(i = 0;i<s.size();i++){
        if(s[i] == c1){
            s[i]= c2;
        }
    }
    cout<<s;
    return 0;
}

解法二:使用replace函数替换

#include <bits/stdc++.h> 
using namespace std;
int main(){
    //当s中含有字符c1时,替换为字符c2 
    string s;
    string c1,c2; 
    cin>>s>>c1>>c2;
    int p = s.find(c1); 
    while(p != -1){
        s.replace(p,1,c2); 
        p = s.find(c1);
    }
    cout<<s;
    return 0;
}