本文主要是介绍原串中需要替换的占位符为“%s”,请按照参数列表的顺序替换占位符。若参数列表的字符数大于占位符个数,则将剩下的参数字符添加到字符串的结尾。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:
请你实现一个简单的字符串替换函数。原串中需要替换的占位符为“%s”,请按照参数列表的顺序替换占位符。若参数列表的字符数大于占位符个数,则将剩下的参数字符添加到字符串的结尾。
示例:
输入:“A%sC%sE”,[B,D,F]
输出:“ABCDF”
代码部分
#include<iostream>
#include<vector>
using namespace std;string myreplace(string str,int index){string s;for(int i=0 ; i<str.size()-1 ; i++){if(i<index){s=s+str[i];}else{s=s+str[++index];}}return s;
}
string myreplaceStr(string &str,vector<char> arg){int arglen=0;for(int i=0 ; i<str.size() ; i++){if(str[i] == '%'){str[i] = arg[arglen];arglen++;str=myreplace(str,i+1);}}for(int a=arglen ; a<arg.size() ; a++){str = str+arg[a];}return str;
}int main(){string in="A%sC%sE";vector<char> arg = {'B','D','F'};cout<<myreplaceStr(in,arg)<<endl;return 0;
}
运行截图
这篇关于原串中需要替换的占位符为“%s”,请按照参数列表的顺序替换占位符。若参数列表的字符数大于占位符个数,则将剩下的参数字符添加到字符串的结尾。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!