3

から最初の単語を削除する最良の方法を探していstd::stringます。これは私が持っているものですが、これは物事を複雑にしすぎていると感じています。これを行うための最善かつ最短の方法は何ですか? ありがとう。

#include <string>
#include <iostream>
#include <sstream>

int main()
{
    std::string str{"Where is everybody?"};
    std::string first;
    if (std::stringstream{str} >> first)
    {
        str.erase(str.begin(), str.begin() + first.size());
    }
    std::cout << str; // " is everybody?"
}
4

4 に答える 4

4

これはc++ 11の正規表現を使用したソリューションです

#include <iostream>
#include <string>
#include <regex>
#include <iterator>

int main ()
{
  std::string s ("there is a subsequence in the string\n");
  std::regex e ("(\\s*)(\\w*)(.*)");
  std::cout << std::regex_replace (s,e,"$1$3");

  return 0;
}
于 2013-06-16T16:50:47.740 に答える