2017-10-22 8 views
1

std::stringにある&のすべてを&に置き換えます。ここでは、コードスニペットが codelinkC++のstd ::文字列内の文字/シーケンスを別の文字シーケンスに置き換えます。

#include <algorithm> 
#include <string> 
#include <iostream> 
int main() 
{ 
    std::string st = "hello guys how are you & so good & that &"; 
    std::replace(st.begin(), st.end(), "&", "&amp;"); 
    std::cout << "str is" << st; 
    return 1; 
} 

であることははstd ::置き換えるエラーが文字列を置き換えることはできません示していますが、それは文字のみで動作します。 私はまだ私の仕事を終わらせるためのロジックを持つことができますが、これを行うためのクリーンなC++の方法はありますか? inbuilt関数はありますか?

+1

[ 'のstd ::文字列:: replace'](http://en.cppreference.com/w/cpp/string/basic_string/replace) 。あなたは今cppreferenceに精通している必要があります... – StoryTeller

答えて

3

regex replaceが、これは簡単に作ることができる:

#include <algorithm> 
#include <string> 
#include <iostream> 
#include <regex> 

int main() 
{ 
    std::string st = "hello guys how are you & so good & that &"; 
    st = std::regex_replace(st, std::regex("\\&"), "&amp;"); 
    std::cout << "str is" << st; 
    return 1; 
} 
+0

ありがとう、これは助けました:) Upvoted&answer as answer :) – codeLover

関連する問題