CString,char[]有什么区别啊?

苏克贝塔03 2010-07-21 02:29:43
CString ,char[]。
能不能
CString s;
char *p=s;
...全文
80 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Daveee 2010-07-21
char不支持运算符重载嚒
  • 打赏
  • 举报
回复
dvlinker 2010-07-21
[Quote=引用楼主 jichao1010 的回复:]
CString ,char[]。
能不能
CString s;
char *p=s;
[/Quote]
s是CString类的对象,p是char字符串指针,是不能这样操作的,可以这么处理:
(1)非Unicode版本:p = s.GetBuffer(0);
(2)Unicode版本:s.GetBuffer(0)内容是宽字符串,而p是窄字符串指针,所以要将s.GetBuffer(0)内容转化一下,才能赋给p
  • 打赏
  • 举报
回复
wjpaaa 2010-07-21
CString是一个类,可以进行许多操作,其初始化为CString str("xx");也可以用等号进行初始化,因为其内部对=进行了重载;CString 转化成 char* 之一:强制类型转换为 LPCTSTR;
CString转化成char* 之二:使用 CString 对象的 GetBuffer 方法
  • 打赏
  • 举报
回复
wjpaaa 2010-07-21
[Quote=引用 2 楼 visualeleven 的回复:]
CString s;
char *p=s;
-------------
囧,你见过有这么写的吗?
[/Quote]
牛人,7月也拿第一吧!
  • 打赏
  • 举报
回复
汪宁宇 2010-07-21
肯定不行咯...

    CString str    = "Hello World !";
char *pTemp = new char[str.GetLength()];
strcpy(pTemp,str.GetBuffer(str.GetLength()));
printf("pTemp = %s",pTemp);

  • 打赏
  • 举报
回复
Eleven 2010-07-21
Unicode编码下也有问题。。。
  • 打赏
  • 举报
回复
Eleven 2010-07-21
CString s;
char *p=s;
-------------
囧,你见过有这么写的吗?
  • 打赏
  • 举报
回复
wltg2001 2010-07-21
[Quote=引用楼主 jichao1010 的回复:]
CString ,char[]。
能不能
CString s;
char *p=s;
[/Quote]
不行,编译通不过的,写成char *p=s.GetBuffer(s.GetLength());
  • 打赏
  • 举报
回复
发帖
VC/MFC

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
帖子事件
创建了帖子
2010-07-21 02:29
社区公告

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