字符串替换
时间限制:3000 ms | 内存限制:65535 KB
难度:2
- 描述
- 编写一个程序实现将字符串中的所有"you"替换成"we"
- 输入
- 输入包含多行数据
每行数据是一个字符串,长度不超过1000
数据以EOF结束
- 输出
- 对于输入的每一行,输出替换后的字符串
- 样例输入
-
you are what you do
- 样例输出
-
we are what we do
也是做过很多次的水题了,最近学STL,利用这题熟悉find(),replace()函数。
具体的replace()函数见之前的博文:点击打开链接。
find()函数是string中的查找函数,具体用法和replace()相似,replace()则是string中的替换函数。
本博文暂时不给出find()函数的详解,具体使用可以百度。
题目简单,代码如下:
#include<iostream> #include<algorithm> #include<string.h> using namespace std; int main() { string s,s1,s2; s1="you"; s2="we"; int sign; while(getline(cin,s)) { sign=s.find(s1,0); while(sign!=string::npos) { s.replace(sign,3,s2); sign=s.find(s1,sign+1); } cout<<s<<endl; } return 0; }
注:
string::npos的理解:string 类提供了 6 种查找函数,每种函数以不同形式的 find 命名。
这些操作全都返回 string::size_type 类型的值,以下标形式标记查找匹配所发生的位置;
或者返回一个名为 string::npos 的特殊值,说明查找没有匹配。string 类将 npos 定义为保证大于任何有效下标的值。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-05 05:02:01