文章

8

粉丝

216

获赞

20

访问

67.2k

头像
字符串函数的使用:reverse() 翻转;substr()获取子串;replace()进行字符串替换
推荐阅读
P1387 北京邮电大学
发布于2021年5月19日 22:22
阅读数 8.7k

s.substr(p, n) 

返回从s的下标p开始的n个字符组成的字符串

s.replace(p0, len0, s2, pos, len)

删除p0开始的len0个字符,然后在p0处插入串s2中从pos开始的len个字符

#include<bits/stdc++.h>
using namespace std;

int main(){
	string s;
    while(cin>>s){
        int n;
        cin >> n;
        while(n--){
			string cmd;//命令
            cin >> cmd;
            if(cmd[0]=='0'){
                int start=cmd[1]-'0';
                int len=cmd[2]-'0';
				//进行反转
                reverse(s.begin()+start, s.begin()+start+len);    
            }
            if(cmd[0]=='1'){
                int start=cmd[1]-'0';
                int len=cmd[2]-'0';
				//得到要进行替换的字符串
				//从命令字符串cmd下标为3处获得长度为cmd.length()-3的字符串
                string replaceStr=cmd.substr(3, cmd.length()-3);
				//进行替换
				//用replaceStr从0开始的replaceStr.length()个字符替换s中从start开始的start+len-1个字符
                s.replace(start,start+len-1,replaceStr,0,replaceStr.length()); 
            }
            cout << s ...
登录查看完整内容


登录后发布评论

1 条评论
trmbh
2024年6月15日 21:23

这里应该是 s.replace(start,len,replaceStr,0,replaceStr.length());

第二个参数是长度len吧,改过之后才由33%到100%

赞(0)