MFC 字符串问题
我用的是vc++6.0用chara[200];和cstring转换老出现乱码怎么样才可以去掉这后面出现的乱码呢?...
我用的是 vc++6.0
用 char a[200];
和 cstring 转换 老出现乱码
怎么样才可以去掉这后面出现的乱码呢? 展开
用 char a[200];
和 cstring 转换 老出现乱码
怎么样才可以去掉这后面出现的乱码呢? 展开
4个回答
展开全部
是从char到WCHAR的转化还是反过来的呀?只能将char转化为WCHAR,即使用CString::Format(_T("%s"), a);或者是采用for循环和CString::operator+将a[i]逐个地加到CString当中去。
但是反过来转化是没有任何意义的。因为WCHAR(Unicode)字符占两个字节,而char占一个字节,双字节是无法转化为单字节的。最简单的讲:汉字的数量是远远超过英文字符的。所以汉字需要使用双字节来表示;如果强行将汉字用单字节(ASCI字符共有256个)表示,那这种表示是没有意义的。因为该字符集的数量远远小于汉字数量。
但是反过来转化是没有任何意义的。因为WCHAR(Unicode)字符占两个字节,而char占一个字节,双字节是无法转化为单字节的。最简单的讲:汉字的数量是远远超过英文字符的。所以汉字需要使用双字节来表示;如果强行将汉字用单字节(ASCI字符共有256个)表示,那这种表示是没有意义的。因为该字符集的数量远远小于汉字数量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先用测试出数组的大小 然后把数组的实际长度以为的元素归零
然后将c风格字符串 转为cstring
例子:
char a[200];
.....//对a字符数组赋值
DWORD arrayLong;
......//或者已经读入的数组的字符个数
a[arraryLong] = 0;
CString str;
str = a;
就可以了
有什么问题 可以继续交流
祝你好运
然后将c风格字符串 转为cstring
例子:
char a[200];
.....//对a字符数组赋值
DWORD arrayLong;
......//或者已经读入的数组的字符个数
a[arraryLong] = 0;
CString str;
str = a;
就可以了
有什么问题 可以继续交流
祝你好运
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CString转换到char由于字符集的不同而不同,若是unicode的话strcpy就行不通哦~MSDN上有相应的unicode版本说明。自己多看看MSDN吧,那里什么都有。
char转到CString直接写就可以了,如char a[100]="hello";CString str=a;
char转到CString直接写就可以了,如char a[100]="hello";CString str=a;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CString 转char :strcpy(a,str);
char 转CString:str.format("%s",a);
char 转CString:str.format("%s",a);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询