美文网首页
1.1 字符串的旋转

1.1 字符串的旋转

作者: 吴金君 | 来源:发表于2018-08-13 21:54 被阅读0次

    字符串的旋转

    这个题目很经典,好像我听广播都听到了:
    题目:输入一个英文句子,将它旋转,句号按字符处理。
    示例:
    输入:"I am a student."
    输出:"student. am a I"

    #include <iostream>
    #include <string>
    using namespace std;
    
    void reverseword(string &s,int from,int to)//单词翻转函数,from是单词首元素,to是单词尾元素
    {
        char temp;
        while(from<to)
        {
            temp=s[from];
            s[from++]=s[to];    //from前移
            s[to--]=temp;       //to后移
        }
        return;
    }
    
    int main(int argc, char *argv[])
    {
        string str;
        while(getline(cin,str))
        {
            reverseword(str,0,str.size()-1);     //先把整个字符串翻转
            int from=0;             //from是单词的第一个元素
            for(int i=0;i<str.size();++i)
            {
                if(str[i]==' ')         //判断空格,以空格为间隔把每个字符翻转
                {
                    int to=i;           //to为尾元素的后一个坐标
                    reverseword(str,from,to-1);//实际做翻转的时候需要to-1得到真正的尾元素
                    from =i+1;
                }
            }
            cout <<str <<endl;
        }
        cout << "Hello World!" << endl;
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:1.1 字符串的旋转

          本文链接:https://www.haomeiwen.com/subject/nnjpbftx.html