string類之更改句子順序

題目要求:輸入一個句子,要求將句子每個單詞順序反過來

例如:

輸入:pig loves dog

輸出:dog loves pig

思路:

寫一個將單詞反轉的函數f,首先將整個輸入反轉變成god sevol gip,然後將每個單詞用函數f反轉,得到dog loves pig

代碼實現:

     #include<iostream>

    #include<string>

    using namespace std;

void jiaohuan(string &s)
{
    int size = s.size();
    for(int i=0;i<size/2;i++)
    {
        char tmp;
        tmp = s[i];
        s[i] = s[size - i -1];
        s[size - i - 1] = tmp;
    }
}
int main()
{
    string A = "pig loves dog";
    jiaohuan(A);
    string C;
    cout<<A<<endl;
    int flag = A.find(" ");
    int inx = 0;
    while(flag!= string::npos)//對除了最後一個單詞進行操作
    {
        string tmp;
        for(int i=inx;i<flag;i++)
            tmp = tmp + A[i];
        jiaohuan(tmp);
        inx = flag+1;
        C = C + tmp + " ";
        flag = A.find(" ",flag + 1);
    }
    string tmp2;//這是爲了最後一個單詞
    for(int j = inx;j<A.size();j++)
        tmp2 += A[j];
    jiaohuan(tmp2);
    C += tmp2;
    cout<<C<<endl;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章