C/C++中如果实现中文字符翻转?
如 字串“i love 你”
输出 "你 evol i"
百度了一下也没找到什么
[解决办法]
>0x80 不同编码具有通用型么 会不会还有其他单字节字符
[解决办法]
宽字符数组+reverse()
[解决办法]
#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;}
[解决办法]
用个宽字符的数组保存 然后倒叙输出就好了