1406:单词替换
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 1872 通过数: 1084
【题目描述】
输入一个字符串,以回车结束(字符串长度≤200)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。
【输入】
第1行是包含多个单词的字符串 s;
第2行是待替换的单词a(长度 ≤ 100);
第3行是a将被替换的单词b(长度 ≤ 100)。
s,a,b最前面和最后面都没有空格。
【输出】
输出只有 1 行,将s中所有单词a替换成b之后的字符串。
【输入样例】
You want someone to help you
You
I
【输出样例】
I want someone to help you
#include<cstring>
using namespace std;
int main()
{
string s , a , b ;
getline(cin , s);//第1行是包含多个单词的字符串 s
//这一行的作用是 获取一行字符串
//其实是想偷懒emmmmm
cin >> a ;
cin >> b ;
//第2行是待替换的单词a(长度 ≤ 100);
//第3行是a将被替换的单词b(长度 ≤ 100)。
k=s.find(a);
//find函数:查找第一次出现的目标字符串
//说明:如果查找成功则输出查找到的第一个位置,否则返回-1;
while ( k != -1 )//这个就是查找成功 也就是返回值不是-1
{
s.replace(k,a.size(),b);//将s中所有单词a替换成b之后的字符串。
//这里很重要!很重要!!很重要!!!
//replace函数的用法以及代码等下会在代码下面放一个大佬的优快云链接
k=s.find(a);//继续找 没有找到就跳出while循环
}
cout<<s<<endl;//输出只有 1 行,将s中所有单词a替换成b之后的字符串。
return 0 ;
}
(链接侵删)