首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++中文字符输出解决方案

2012-09-23 
c++中文字符输出最近在弄个小程序但是卡死在中文字符上面了。中文字符是两个字节来存储嘛我觉得应该是要用w

c++中文字符输出
最近在弄个小程序 但是卡死在中文字符上面了。

中文字符是两个字节来存储嘛 我觉得应该是要用wchar_t
但是 这句代码
wchar_t a[] = "星期三";
编译的时候报错,错误信息 error: int-array initialized from non-wide string
这个一个问题啦。

然后,我想实现的功能是 更改中文字符串中的某个字。
例如,"星期三" 改成"星期四" 这样子。。

求高手指点指点!

[解决办法]
用string呗
[解决办法]

探讨

引用:

用string呗


用string存 可以噢
不过要怎么改中间的字还是不懂。。

[解决办法]
探讨
引用:

wchar_t a[] = L"星期三";

或者 wchar_t a[] = _T( "星期三" );
什么编译器?VC使用什么字符集是可以设置的

[解决办法]
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;} 

热点排行