2010-11-17 51 views
3

我有一個std::string A我需要在裏面找到字符串B與內容,如bla-bla-bla,並與其他字符串替換Cabcdefg如果B沒有被發現只是把CA開始。如何在字符串中找到字符串並將其替換?

如何做這樣的事情?

+0

當你有一些那些URL,就用滿的,你想讓它使用類似「RTMP://」,而不是'http://',當然你更新知道'http://'。) – Rella 2010-11-17 22:16:02

+3

你看過string :: replace和string :: find嗎? – Cascabel 2010-11-17 22:16:34

回答

4
void replace_or_merge(std::string &a, const std::string &b, const std::string &c) 
{ 
    const std::string::size_type pos_b_in_a = a.find(b); 
    if(pos_b_in_a == std::string::npos) { 
    a.insert(0, c); 
    } 
    else { 
    a.replace(pos_b_in_a, b.length(), c); 
    } 
} 
+1

+1 /聲音的邏輯,但更好地傳遞b和c作爲const std :: string&' – 2010-11-18 01:29:43

+0

@Tony是的,你是對的。我修改了聲明 – 2010-11-18 09:51:15

2
A.replace(str.find(B), B.length(), C); 

您可能需要添加錯誤檢查;-)