在不使用字符串流的情况下按新行拆分C ++字符串

时间:2017-09-09 22:31:44

标签: c++

我们说我有一个字符串"file1\nfile2\nfile3".

我想打印出来:

file1
file2
file3

如何在不使用字符串流的情况下执行此操作?

注意:当我说string时,我指的是C ++中的字符串对象。

对不起,如果这是一个愚蠢的问题;我是C ++的新手;

1 个答案:

答案 0 :(得分: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();   
    }
}