首页 > 试题广场 >

单词替换

[编程题]单词替换
  • 热度指数:41678 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。

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


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

输入

You want someone to help you
You
I

输出

I want someone to help you
头像 philos
发表于 2021-02-06 22:10:53
思路 因为直接使用 find 的话不是单词也可能匹配到,所以在 a,b 前面加了空格,主要使用了 C++ 库函数的 erase(pos, len),清楚 pos 开始的长度为 len 的子串,insert(pos, b) 在 pos 位置插入字符串 b #include <iostream&g 展开全文
头像 烤肉__
发表于 2022-01-30 10:30:23
先按空格将句子分成一个一个单词,这样就非常方便替换了。直接检查单词即可了。 #include <iostream> #include <algorithm> #include <vector> using namespace std; vector<str 展开全文
头像 Vibia
发表于 2022-01-27 11:19:10
思路:设字符串为s1,要替换的单词s2,替换内容s3。设两个标记位f1、f2,f1指向单词后的空格,f2指向每个单词的第一个字母。遍历s1,每当遇到空格或遍历到字符串结束时进行一次判断,更新f1和f2,截取f1和f2之间的单词st与s2对比,如果相同则输出s3,不相同输出st。 #include&l 展开全文
头像 wbc990512
发表于 2021-01-22 17:33:27
是不是可以有一种不替换的方法,一个一个字符的输出,遇到a则输出b,遇到非a则正常输出 #include<stdio.h> #include<string.h> int main() { char str[200]; char a[105]; char 展开全文
头像 DioDid
发表于 2022-02-03 16:02:33
法1: 复习一下KMP算法 通过KMP算法,可以轻松求出匹配的字符串的位置 可以参考如下链接:https://blog.nowcoder.net/n/82f6d123408c4d5db19cda68501d8d85 本题作了一些改变:必须要是整个的单词进行匹配才能替换,单词的前后,必须有空格 如果目 展开全文
头像 不红红黑路同
发表于 2022-02-02 17:33:06
更新:更简练的一种做法 可以用str.find(key)!=string::npos表示str中含有key 可以用前后加空格的方式避免误改长单词中的key的情况 代码如下: #include <iostream> #include <cstdio> #include &l 展开全文
头像 rainman_
发表于 2023-03-15 10:40:00
#include <iostream> #include <string> using namespace std; /** 因为直接使用 find 的话不是单词也可能匹配到,所以在 a,b 前面加了空格,主要使用了 C++ 库函数的 erase(pos, len),清楚 展开全文
头像 senatusthug
发表于 2024-05-31 14:59:55
#include <iostream> #include <string> using namespace std; int main() { string S, s; int pos; while (getline(cin, S)) { 展开全文
头像 牛客588682307号
发表于 2024-03-14 19:59:46
# include<stdio.h> #include<iostream> using namespace std; int main(){ string s,tag,sub; while(getline(cin,s)){ cin>>sub; cin> 展开全文
头像 Perceive109
发表于 2023-01-18 14:25:45
#include "iostream" #include "string" using namespace std; int main() { // Define: string str,find, sub; int place, startPos = 0; // 展开全文