0

文字列の最初の行を消去する最も簡単な方法は何ですか?

例:

"abc\ndef\nghi"

=>

"def\nhi"

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 に答える