c++中文字符输出
最近在弄个小程序 但是卡死在中文字符上面了。
中文字符是两个字节来存储嘛 我觉得应该是要用wchar_t
但是 这句代码
wchar_t a[] = "星期三";
编译的时候报错,错误信息 error: int-array initialized from non-wide string
这个一个问题啦。
然后,我想实现的功能是 更改中文字符串中的某个字。
例如,"星期三" 改成"星期四" 这样子。。
求高手指点指点!
[解决办法]
用string呗
[解决办法]
[解决办法]
[解决办法]
TCHAR 或者wchar_t都是unicode编码,要用_T("")或者L""初始化
[解决办法]
- C/C++ code
#include <iostream>#include <string.h>using namespace std;int main(){ setlocale(LC_ALL, ""); // 宽字节输出中文 wchar_t str[] = L"星期三"; wcout << str << endl; wchar_t* wp = wcschr(str, L'三'); if (wp != NULL) *wp = L'五'; wcout << str << endl; return 0;}
[解决办法]
- C/C++ code
#include <iostream>#include <string.h>using namespace std;const char*week[] = { "星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };int main(){ for (int i = 0 ; i != 7; ++i) cout << week[i] << endl; cout << string(40, '=') << endl; setlocale(LC_ALL, ""); // 宽字节输出中文 wchar_t str[] = L"星期三"; wcout << str << endl; wchar_t* wp = wcschr(str, L'三'); if (wp != NULL) *wp = L'五'; wcout << str << endl; return 0;}