使用C++旋转字符串

1 c++ string

可能重复:
在c ++中旋转一个字符串?
如何旋转std :: string?

我在c ++中创建一个与命令行输入一起使用的应用程序.我在命令行输入一个字符串

    int main(int argc, char** argv)
    {
        if(argc != 2)
        {
             cerr << "Invalid number of CMD arguments" << endl;
             return 1;
        }

        string StringValue = argv[1];
        cout << StringValue << endl;
     }
Run Code Online (Sandbox Code Playgroud)

这项工作很好.现在我想循环字符串中的字符.示例:如果我输入单词"STATES".

    ^STATES|
    |^STATES
    S|^STATE
    ES|^STAT
    TES|^STA
    ATES|^ST
    TETES|^S
    STATES|^
Run Code Online (Sandbox Code Playgroud)

其中"^"是开头和"|" 结束.我该怎么做呢?

And*_*rew 12

使用std::rotate http://www.cplusplus.com/reference/algorithm/rotate/

string foo = "abcdefg";
std::rotate(foo.begin(), foo.begin() + 3, foo.end());
cout << foo << endl; //prints defgabc
Run Code Online (Sandbox Code Playgroud)

  • @ user1554408可以这样做,但重新实现`std :: rotate`没有什么意义,除非这是一个练习或作业. (2认同)