给定一个字符串A,同时给定它的长度n及参数字符数组arg,请返回替换后的字符串
2017-09-23 14:42
489 查看
给定一个字符串A,同时给定它的长度n及参数字符数组arg,请返回替换后的字符串。保证参数个数大数等于占位符的个数。保证原串由大小写字母组成,同时长度小于等于500。
测试样例:
返回
测试样例:
“A%sC%sE” ,7,['B','D','F'],3
返回
“ABCDEF”
#include<vector> #include<assert.h> #include<string> //n是原串的长度,m是要替换的字符的数量 string Formatstring(const string& str, int n, const vector<char>& arg, int m) { //重新开辟一段空间并扩容,防止后面的增容开销 string formatstr; formatstr.reserve(formatstr.size()); size_t pos = 0;//pos是指向vector中的元素 for (size_t i = 0; i < n; ++i)//i是指向str中的元素 { if ((str[i] == '%') && (i + 1 < n) && (str[i + 1] == 's')) { assert(pos < m); formatstr.push_back(arg[pos++]); ++i; } else { formatstr.push_back(str[i]); } } while (pos < m) { formatstr.push_back(arg[pos++]); } return formatstr; } void Test() { string str = "A%sC%sE"; vector<char> arg; arg.push_back('B'); arg.push_back('D'); arg.push_back('F'); string formastr = Formatstring(str, 7, arg, 3); cout << formastr << endl; } int main() { Test(); system("pause"); return 0; }
相关文章推荐
- 请编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。 给定一个string
- 空格替换 请编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。 给定一
- 请编写一个方法,将字符串中的空格全部替换为“ ”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。
- 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。
- php把一个字符串分割成字符数组(可以用参数指定数组每个元素字符的长度)
- 请编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成
- 给定一个字符串,返回字符串中没有重复字符的最长子串的长度
- 给定一个字符串s由大小写字母和空白字符组成,返回字符串中最后一个字的长度。 如果最后一个字不存在,则返回0。
- 如果字符串的一个子串(其长度大于 1)的各个字符均相同,则称之为等值子串。试设计一算法,求出串S中的最大等值子串 函数返回最大等值子串的长度,如果没有则返回1。 例如: 若S= “abc123abc1
- 在一个字符串(1<=字符串长度<=10000,全部由大小写字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 给定一个字符串,返回字符串中相邻的字符个数大于等于2的记录数
- 【剑指Offer-时间效率平衡】在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 字符串替换空格:请实现一个函数,把字符数组中的每个空格替换成“%20”。
- 一个扩展后的Split方法,可根据字符串分隔字符,返回字符数组
- (不包括\0) 编写一个int string_len(char *s), 返回字符串s的字符长度
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 求给定的某一个字符串中的最长的没有重复字符的子串的长度
- 对于一个有序数组,我们通常采用二分查找的方式来定位某一元素,请编写二分查找的算法,在数组中查找指定元素。 给定一个整数数组A及它的大小n,同时给定要查找的元素val,请返回它在数组中的位置(从0开始),若不存在该元素,返回-1。若该元素出现多次,请返回第一次出现的位置。
- 分割字符串到数组/替换字符串/返回指定字节长度的字符串/判断是否为浮点数,包括double和float/email判断/是否纯汉字判断/空白判断
- 一个不给定长度的字符串数组如何判断结束