NYOJ 113 字符串替换(C++STL解法)

字符串替换

时间限制: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 定义为保证大于任何有效下标的值。

版权声明:本文为博主原创文章,未经博主允许不得转载。

总结成功的经验能够让人越来越聪明,

NYOJ 113 字符串替换(C++STL解法)

相关文章:

你感兴趣的文章:

标签云: