0

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

例子:

“abc\ndef\nghi”

=>

“定义\nghi”

4

2 回答 2

6

您将使用.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;

}
于 2013-07-13T17:47:38.830 回答
1

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

  • \n => Un*x

  • \r\n => 窗口

  • \r => macOS

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

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

我希望它有所帮助。

于 2016-06-14T15:43:29.163 回答