명품 C++ 예제 4-15 문자열 find 및 replace

题目

&가 입력될 때까지 여러 줄의 영문 문자열을 입력 받고, 찾는 문자열과 대치할 문자열을 각각 입력 받아 문자열을 변경하라.

解题思路

1.输入字符串
2.用find函数找出要更改的字符串
3.用replace函数替换要改变的函数
4.重新显示句子。

#include <iostream>
#include <string>
using namespace std;

int main(int argc, const char * argv[]) {
    string s;
    cout << "输入字符串。结束的时候输入&" << endl;
    getline(cin,s,'&');//输入字符串到&为止
    cin.ignore();//除去'&'后面《enter》的字符串
    
    string f,r;
    cout << endl << "find: ";
    getline(cin, f, '\n');//检查的字符串输入
    cout << "replace: ";
    getline(cin,r,'\n');//兑换的字符串输入
    
    int startIndex =0;
    while (true) {
        int fIndex = s.find(f,startIndex);//在starIndex的字符串里面找 f
        if(fIndex == -1)break;
        //字符串到s为止改变
        s.replace(fIndex, f.length(), r);//找到的第一个位置fIndex到f的长度为止,更换r
        startIndex = fIndex + r.length();//原本的长度加上换字符的长度
        
    }
    cout << s << endl;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值