学习cpp程序时,处理的都是英文字符串。而如何处理汉字字符串呢? 这就需要了解汉字编码了。 这里是一篇好文章: [http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html](http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html)
我简要的理解为,将输入的汉字转换为通用的Unicode编码,在C++中用wchat_t存储,进而使用wstring操作。转换为wstring后,就可以像处理英文字符串一样,数组处理了。
下面是char转为wstring的代码:
1
| wchar_t const char while ( if ( temp[0] = p++; temp[1] = for (int i = 2; i < sizeof(wchar_t); i++) temp[i] = 0x0; } else{ } wp++; p++; } return buff; } std::wstring str2wstr(char wchar_t MBCS2Unicode(b, str); std::wstring r(b); free(b); return r; }
|
以下是wchat_t的测试代码:
1
| #include <stdio.h> #include <iostream> int main() { wchar_t s[] = L"中国";//ansi to unicode.every char is 2 bytes. std::wstring r(s); std::wcout.imbue(std::locale("chs"));//set chinese std::wcout << r[0] << " " << r[1] << std::endl; getchar(); return 0; }
|
以后处理汉字就用这种方便的方法了。