我正在寻找从 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?"
}

最佳答案

小调整,这也利用了下半场的 IO 流:)

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

int main()
{
    std::string str{"Where is everybody?"};

    std::string first;
    std::istringstream iss{str};
    iss >> first;

    std::ostringstream oss;
    oss << iss.rdbuf();

    std::cout << oss.str(); // " is everybody?"
}

关于c++ - 如何从字符串中删除第一个单词?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17135452/

10-11 23:22
查看更多