【codeup】 1962 单词替换

题目描述

输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。

输入

多组数据。每组数据输入包括3行,
第1行是包含多个单词的字符串 s,
第2行是待替换的单词a,(长度<=100)
第3行是a将被替换的单词b。(长度<=100)
s, a, b 最前面和最后面都没有空格。

输出

每个测试数据输出只有 1 行,
将s中所有单词a替换成b之后的字符串。

样例输入

I love Tian Qin
I
You

样例输出

You love Tian Qin

解答

#include<iostream>
#include<cstring>

using namespace std;

int main(void){
	string input;
	string find_word;
	string replace_word;
	while(getline(cin,input)){
		input = " " + input + " ";
		getline(cin,find_word);
		getline(cin,replace_word);
		find_word = " " + find_word + " ";
		replace_word = " " + replace_word + " ";
		int pos = 0;
		while ((pos = input.find(find_word)) != -1){
    	    input.replace(pos,find_word.size(),replace_word);
    	}
    	input.erase(0,1);
    	input.erase(input.size(),1);
    	cout << input << endl;
    }
}

思路

首先看题目的描述是要我们找出一个字符串中出现的所有满足条件的单词,这里就要进行字符串的查找了,所以用C++会更好一些,操作更加方便,直接用while循环加上find函数就可以进行查找了。
但直接用题目里给的单词进行查找就有一个弊端,如果你要将 you 替换为me ,在主串中如果有 your 这个单词就会被替换成 mer,不符合条件了,所以这里做了一个小小的改动,将所有的输入都在开头和结尾加了空格,这样在进行子串的查找时就不会出现上述情况了,在输出时利用erase函数将开头结尾去掉就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
当你遇到“git@codeup.aliyun.com: Permission denied (publickey)”这个错误信息时,通常意味着你的 Git 客户端无法使用预设的 SSH 密钥对验证远程服务器的身份,或者无法通过该密钥访问远程仓库。 以下是解决此问题的一些步骤: ### 1. 确认 SSH 密钥对的存在 确保你已经生成了有效的 SSH 密钥对,并将公钥添加到远程服务器的权限列表中。你可以通过以下几个命令检查并生成新的密钥对: ```bash # 检查当前目录下是否已经有 `.ssh` 目录及其中的公钥文件 ls .ssh/id_rsa.pub # 如果没有,生成一个新的密钥对 ssh-keygen -t rsa -b 4096 # 将公钥添加到远程服务器的权限列表中 cat ~/.ssh/id_rsa.pub | ssh user@example.com 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys' ``` ### 2. 清理本地配置 如果上述步骤无效,可能是由于本地 Git 配置的问题导致的。尝试清除或重新设置 SSH 的全局认证配置: ```bash rm ~/.ssh/config # 删除全局的 SSH 配置文件 ``` 然后重新设置连接: ```bash git config --global url."ssh://[username]@[hostname]:port/[repository_path]/".insteadOf "ssh://[username]@[hostname]/[repository_path]/" ``` ### 3. 重启 SSH 服务 在一些 Linux 发行版上,重启 SSH 服务可能会帮助解决问题: ```bash sudo systemctl restart sshd ``` ### 相关问题: 1. 如何确认本地已存在有效的SSH密钥? 2. 如果SSH密钥对未添加到远程服务器如何操作? 3. 当Git连接远程仓库时,除了“Permission denied (publickey)”之外还有哪些常见的错误提示及其解决方案是什么?
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值