擦除字符串中的第一行

时间:2013-07-13 17:34:32

标签: c++ string iterator

从字符串中删除第一行的最简单方法是什么?

示例:

  

“ABC \ NDEF \尼奇”

     

=>

     

“DEF \尼奇”

2 个答案:

答案 0 :(得分:5)

您可以使用.find查找第一个\n的位置,然后使用.erase从第一个字符开始删除\n

#include <iostream>
#include <string>

int main()
{
    std::string myString = "abc\ndef\nghi";
    myString.erase(0, myString.find("\n") + 1);
    std::cout << myString;

}

答案 1 :(得分:1)

当源是MacOS时,Caesar的回答失败了,因为:

  • \ n =&gt; Un * x

  • \ r \ n =&gt;窗

  • \ r =&gt;的MacOS

使用boost :: regex的更好方法可能是:

boost::regex kNewLine("\r\n|\n|\r");
boost::split_regex(oSplitMessage, iRawMessage, kNewLine);

我希望它有所帮助。