Я хочу заменить некоторые слова, не используя внешние библиотеки. Моя первая попытка была сделать копию строки, но это не было эффективным, так что это еще одна попытка, где я использую адреса:Заменить целые слова в строковом списке без использования внешних библиотек
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