1406:单词替换 (注意replace函数的用法)

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
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函数的用法以及代码等下会在代码下面放一个大佬的CSDN链接 
		k=s.find(a);//继续找 没有找到就跳出while循环 
	}
	cout<

C++ replace() 函数用法详解

(链接侵删)

你可能感兴趣的:(一本通,随便写点什么)