2017-09-09 13 views
-3

を使用せずに、新しいラインでC++文字列はのは、私は、文字列に"file1\nfile2\nfile3".分割文字列ストリーム

があるとしましょう、私はプリントアウトしたい:

file1 
file2 
file3 

私は文字列ストリームを使用せずにこれをどのように行うことができますか?

注:私が文字列を言うとき、私はC++の文字列オブジェクトを意味します。

これは愚かな質問である場合は申し訳ありません。私はC++に全く新しいです。

+7

を? – aschepler

+0

可能な複製https://stackoverflow.com/questions/236129/most-elegant-way-to-split-a-string – Galik

+0

'string s =" file1 \ nfile2 \ nfile3 "; cout << s << '\ n'; ' – melpomene

答えて

0

次は仕事とあなたがmultichar delimを指定することができますする必要がありますされてあなただけのすべてでそれを分割せずに、文字列をプリントアウトしていないのはなぜ

void split_and_print(const std::string & data, const std::string & delim =std::string{"\n"}){ 
    if (!delim.length()){ 
     std::cout<<data<<std::endl; 
     return; 
    } 
    auto last = data.begin(); 
    auto found = last; 
    while (found != data.end()){ 
     found = std::search(last, data.end(), delim.begin(), delim.end()); 
     std::cout<<std::string(last, found)std::endl; 
     last = found + delim.length(); 
    } 
}