2010-11-17 49 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); 

您可能需要添加错误检查;-)