Ответ 1
Вам ничего не хватает, его нет в стандартной библиотеке.
Вы можете сами написать, используя find()
, replace()
и т.д., Или использовать реализацию, такую как replace_all()
из Boosts библиотека алгоритмов строк.
В каждом языке, о котором я могу думать, кроме С++, функция Replace существенно заменяет все части строки, тогда как класс строк С++ не поддерживает простые операции, такие как:
string s = "Hello World";
s = s.Replace("Hello", "Goodbye");
echo s; // Prints "Goodbye World"
Это кажется наиболее распространенным использованием любого типа функции замены строк, но в С++ нет стандартной функции замены. Я что-то пропустил?
EDIT: Я знаю, что в стандартной библиотеке нет встроенной функции замены, подобной этой, - мне интересно, есть ли более или менее стандартная реализация, сделанная из стандартных алгоритмов или что-то в этом роде.
Вам ничего не хватает, его нет в стандартной библиотеке.
Вы можете сами написать, используя find()
, replace()
и т.д., Или использовать реализацию, такую как replace_all()
из Boosts библиотека алгоритмов строк.
это не совсем то же самое, но есть способ замены:
#include <iostream>
#include <string>
using namespace std;
int main( void )
{
string s = "Hello World";
s.replace(0, 5, "Goodbye");
cout << s << endl;
return 0;
}
вы можете легко написать свою замену, используя string:: find, string:: replace и little loop