2010-06-21 28 views

Odpowiedz

9

Niezupełnie, ale spójrz na Boost String Algorithms Library - w tym przypadku replace functions:

std::string str("aabbaadd");  
boost::algorithm::replace_all(str, "aa", "xx"); 

str zawiera teraz "xxbbxxdd".

+1

no unicode? co? – Kugel

+3

@Kugel: Do czego dążysz? Algorytmy łańcuchowe są abstrakcyjne i działają z dowolnym ciągiem spełniającym [wymagania] (http://www.boost.org/doc/libs/1_43_0/doc/html/string_algo/design.html#string_algo.string). Więc idź z 'wstring', użyj Boost.Locale z ICU lub cokolwiek, co pasuje najlepiej. –

+0

@Kugel: co masz na myśli? – Joe

7

std::string::replace dokona wymiany. Możesz połączyć go z metodami std::string::find*, aby uzyskać podobną funkcjonalność. To nie jest tak łatwe, jak w PHP. Myślę, że Boost ma to, czego szukasz; w regular expressions.

+2

+1 za niezalecanie zwiększenia. –

0

Można również użyć std :: regex_replace

Powiązane problemy