字符串替换
时间限制:3000 ms | 内存限制:65535 KB
难度:2
输入包含多行数据 每行数据是一个字符串,长度不超过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 定义为保证大于任何有效下标的值。
版权声明:本文为博主原创文章,未经博主允许不得转载。
总结成功的经验能够让人越来越聪明,