我有一个单空格分隔的字符串,我想替换字段x。替换空格分隔字符串中的字段C++
我可以反复使用find
找到x-1和x空格,然后用substr
来抓住两边的两个字符串,然后连接两个子字符串和替换文本。
但是,对于那些应该很简单的事情来说,这似乎是一个可怕的工作。有没有更好的解决方案 - 不需要Boost的解决方案?
回答 我已经清理@Domenic Lokies如下回答:
sting fieldReplace(const string input, const string outputField, int index)
{
vector<char> stringIndex(numeric_limits<int>::digits10 + 2);
_itoa_s(index, stringIndex.begin()._Ptr, stringIndex.size(), 10);
const string stringRegex("^((?:\\w+){"); //^((?:\w+){$index})\w+
return regex_replace(input, regex(stringRegex + stringIndex.begin()._Ptr + "})\\w+"), "$1" + outputField);
}
(_itoa_s
和_Ptr
是MSVS只是我相信,所以你需要清理这些了,如果你想代码的可移植性。)
你能举一个你想要的例子吗? –