中心反转中文句子

#include <iostream>

#include <sstream>

#include <vector>

#include <string>



vector<wstring> GetStr (const wstring &s)

{

    locale china ("chs");



    wistringstream line (s);

    wstring word;

    vector<wstring> words;

    while (line >> word) {

        words.push_back (word);

    }

    return move (words);

}



vector<wstring> TurnStrVec (const vector<wstring> &vec)

{

    auto vec_mid_it = 

        vec.cbegin() + (vec.size () / 2);



    vector<wstring> tmp_vec (vec_mid_it

                            , vec.cend());

    tmp_vec.insert (tmp_vec.cend()

                    , vec.cbegin ()

                    , vec_mid_it);

    return move (tmp_vec);

}



wstring VecToStr (const vector<wstring> &vec)

{

    wstring tmp_s;

    for (const auto &elem : vec) {

        tmp_s.append (elem);

        //tmp_s.append (L" ");

    }

    return move (tmp_s);

}



void TurnStr (wstring &s)

{

    s = VecToStr (TurnStrVec(GetStr(s)));

}





int main ()

{

    ios::sync_with_stdio(flase);

    locale china ("chs");

    wcout.imbue (china);

    wstring s (L"你 好 啊, 朋 友!");

    TurnStr (s);

    wcout << s << endl;

    return 0;

}

 

你可能感兴趣的:(中文)