读书人

C/C++中如果实现中文字符翻转?该如何

发布时间: 2012-04-13 13:50:24 作者: rapoo

C/C++中如果实现中文字符翻转?
如 字串“i love 你”
输出 "你 evol i"


百度了一下也没找到什么

[解决办法]
>0x80 不同编码具有通用型么 会不会还有其他单字节字符
[解决办法]
宽字符数组+reverse()
[解决办法]

C/C++ code
#include <iostream>#include <cwchar>using namespace std;int main(){    setlocale(LC_ALL,"");    wchar_t buffer[]=L"i   love      你",word[10];    wchar_t *wPtr=buffer;    while(*wPtr==L' ')    {        wprintf(L" ");        ++wPtr;    }    while(swscanf(wPtr,L"%s",word)!=EOF)    {        for(wchar_t *p=word+wcslen(word)-1;p>=word;--p)        {            wprintf(L"%c",*p);        }        wPtr+=wcslen(word);        while(*wPtr==L' ')        {            wprintf(L" ");            ++wPtr;        }    }    wprintf(L"\n");    return 0;}
[解决办法]
用个宽字符的数组保存 然后倒叙输出就好了

读书人网 >C++

热点推荐