字符串替换
时间限制: 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#include #include 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< <
注:
string::npos的理解:string 类提供了 6 种查找函数,每种函数以不同形式的 find 命名。 这些操作全都返回 string::size_type 类型的值,下面标形式标记查找匹配所发生的位置。 或者返回一个名为 string::npos 的特殊值,说明查找没有匹配。string 类将 npos 定义为保证大于不论什么有效下标的值。