我想在不使用外部库的情况下替换某些单词。 我第一次尝试是使字符串的副本,但它是没有效率的,所以这是另一种尝试,我用地址:在不使用外部库的情况下替换字符串列表中的整个单词
void ReplaceString(std::string &subject, const std::string &search, const std::string &replace)
{
size_t position = 0;
while ((position = subject.find(search, position)) != std::string::npos) //if something messes up --> failure
{
subject.replace(position, search.length(), replace);
position = position + replace.length();
}
}
因为这不是非常高效要么,我想用另外的东西,但我陷入了困境;我想使用replace_stuff(std::string & a);
这样的函数,使用string.replace()
和string.find()
(解析为for循环或其他)的单个参数,然后利用std::map <std::string,std::string>;
这对我来说非常方便。
我想用它来输入大量的单词。 (假设用一些无害的词替换许多不良词)
不要对自己失望。对于你正在做的事情,这实际上比你想象的要干净得多,特别是对于只用C++做几个月的人来说。 – WhozCraig