导航
  • 主页
  • VC综合技术
  • MFC新技术
  • 互联网技术
  • .NET 技术
  • VC/MFC界面
  • VC/MFC 进程
  • VC/MFC 数据库
  • VC++技术资源

求教:VS2008下 如何将char数组转化成CString类型

xiaoxiaodianzi 2010-07-12 05:29:34
RT
...全文
1797 点赞 收藏 18
写回复
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
山伟 2010-07-13
[Quote=引用 15 楼 visualeleven 的回复:]
引用 14 楼 xiaoxiaodianzi 的回复:
引用 13 楼 zxdlms 的回复:
引用 12 楼 zwfgdlc 的回复:
引用 9 楼 xiaoxiaodianzi 的回复:
比如说 char a[4] = {0x10,0x20,0x00,0x30};
我要输出CString "10:20:00:30"; 我字节之间是需要加上:的 所以只能是一个一个转化!


C/……
[/Quote]
str.Format(TEXT("%02x:%02x:%02x:%02x"), a[0], a[1], a[2], a[3]); //有问题!
这里有个小小的问题,a[0],a[1],a[2],a[3]应该是16进制无符号整数才可以。所以在Format之前应该增加一个操作,将char a[]转换为16进制整数数组
回复
sycnick 2010-07-13
兔子党都是干什么的?为什么叫兔子党?有什么来历?
回复
iCan.club 2010-07-13
最近也有碰到字符串转换,字符集转换,真是头大,冒个泡呼吸新鲜空气
回复
Eleven 2010-07-13
[Quote=引用 14 楼 xiaoxiaodianzi 的回复:]
引用 13 楼 zxdlms 的回复:
引用 12 楼 zwfgdlc 的回复:
引用 9 楼 xiaoxiaodianzi 的回复:
比如说 char a[4] = {0x10,0x20,0x00,0x30};
我要输出CString "10:20:00:30"; 我字节之间是需要加上:的 所以只能是一个一个转化!


C/C++ code
char a[5] = {0x10,0……
[/Quote]

char a[5] = {0x10,0x20,0x00,0x30};
CString str;
str.Format(TEXT("%02x:%02x:%02x:%02x"), a[0], a[1], a[2], a[3]);
AfxMessageBox(str);
回复
xiaoxiaodianzi 2010-07-13
[Quote=引用 13 楼 zxdlms 的回复:]
引用 12 楼 zwfgdlc 的回复:
引用 9 楼 xiaoxiaodianzi 的回复:
比如说 char a[4] = {0x10,0x20,0x00,0x30};
我要输出CString "10:20:00:30"; 我字节之间是需要加上:的 所以只能是一个一个转化!


C/C++ code
char a[5] = {0x10,0x20,0x00,0x30};
CStr……
[/Quote]

嗯 多谢这位大哥!! 可以转化了!! 不过有个小小的问题就是当他是0x01,0x00等转化过来的只有一位数,“1”,“0”。 有什么格式可以转化成“01”,“00”吗?
回复
zxdlms 2010-07-12
[Quote=引用 12 楼 zwfgdlc 的回复:]
引用 9 楼 xiaoxiaodianzi 的回复:
比如说 char a[4] = {0x10,0x20,0x00,0x30};
我要输出CString "10:20:00:30"; 我字节之间是需要加上:的 所以只能是一个一个转化!


C/C++ code
char a[5] = {0x10,0x20,0x00,0x30};
CString str;
str.Format(T……
[/Quote]你这么不对吧,他实际上是要把16位数变成字符串而已。
char a[5] = {0x10,0x20,0x00,0x30};
CString str;
str.Format(TEXT("%x:%x:%x:%x"), a[0], a[1], a[2], a[3]);

土的方法就是循换一遍,把每个字符编程字符串然后+起来
回复
zwfgdlc 2010-07-12
[Quote=引用 9 楼 xiaoxiaodianzi 的回复:]
比如说 char a[4] = {0x10,0x20,0x00,0x30};
我要输出CString "10:20:00:30"; 我字节之间是需要加上:的 所以只能是一个一个转化!
[/Quote]
char a[5] = {0x10,0x20,0x00,0x30};
CString str;
str.Format(TEXT("%c:%c:%c:%c"), a[0], a[1], a[2], a[3]);

回复
zwfgdlc 2010-07-12
[Quote=引用 6 楼 xiaoxiaodianzi 的回复:]
引用 2 楼 zwfgdlc 的回复:
C/C++ code

char a[] = "123456789";
CString str(a);


这里有个问题, 我需要把字节比如说 0X1E, 转化成CSTRING “1”“E”;
[/Quote]
那你要先把0x去掉吧。
回复
hongya6088 2010-07-12
先将char转换为unicode宽字节
然后直接等或使用CString的Format函数。


iLength = MultiByteToWideChar( CP_ACP, 0, pStringIn, -1, NULL, 0 ) ;
pWideStr = new WCHAR[iLength + 1] ;
MultiByteToWideChar( CP_ACP, 0, pStringIn, -1, pWideStr, iLength );
pWideStr[iLength] = 0; // 追加 \0
...
delete[] pWideStr;
回复
xiaoxiaodianzi 2010-07-12
[Quote=引用 7 楼 zxdlms 的回复:]
引用 4 楼 xiaoxiaodianzi 的回复:
不好意思 那如果是单个char字节呢?
我这里需要一个一个字节的转化
什么叫一个字节一个字节的转换?
[/Quote]

比如说 char a[4] = {0x10,0x20,0x00,0x30};
我要输出CString "10:20:00:30"; 我字节之间是需要加上:的 所以只能是一个一个转化!
回复
xiaoxiaodianzi 2010-07-12
如果是 直接CString str(a)的话 遇到字节是0的 后面就不显示了
回复
zxdlms 2010-07-12
[Quote=引用 4 楼 xiaoxiaodianzi 的回复:]
不好意思 那如果是单个char字节呢?
我这里需要一个一个字节的转化
[/Quote]什么叫一个字节一个字节的转换?
回复
xiaoxiaodianzi 2010-07-12
[Quote=引用 2 楼 zwfgdlc 的回复:]
C/C++ code

char a[] = "123456789";
CString str(a);
[/Quote]

这里有个问题, 我需要把字节比如说 0X1E, 转化成CSTRING “1”“E”;
回复
MFC_ipsu 2010-07-12
For Example:
char cBuffer[10] = "abcdef";
CString strBuff(cBuffer);
回复
xiaoxiaodianzi 2010-07-12
不好意思 那如果是单个char字节呢?
我这里需要一个一个字节的转化
回复
jogger007 2010-07-12
char sz[256] = "stuff";
CString cs;

cs.Format("%s", sz);
回复
zwfgdlc 2010-07-12

char a[] = "123456789";
CString str(a);
回复
岁月小龙 2010-07-12
直接等于就行了,不需要转换
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……