我的字符串大小为N.我需要将此字符串的每个第n个符号更改为“a”而不通过所有符号循环?任何想法怎么做,因为我有点傻眼。提前谢谢。
答案 0 :(得分:1)
您可以使用replace_if
:
std::string s = "hi there";
int n = 2;
int counter = 0;
std::replace_if(s.begin(), s.end(), [&] (char c) {
counter++;
return ((counter - 1) % n == 0);
}, 'a');
std::cout << s;
std::replace_if(s.begin(), s.end(), [&] (char& c) {
return ((&c - &s[0]) % n == 0);
}, 'a');