当我定义了一个 char sz[10],对他进行赋值(假设为s)的时候有时候会提示出我赋的值不是10个字符,当我s为变量时,这该如何解决?
char变量如何与CString变量互相转换?
另外能不能系统的讲一下char与CString之间的关系,以及他们的用法?

解决方案 »

  1.   


    你赋值为s,当然 sz[0]='s'了,其他的就为空。CString str;
    char ch[200];
    ch=(char *)((LPCTSTR)str);当然str的长度不能大于ch数组的大小
      

  2.   

    http://www.pcvc.net/category/content.asp?sendid=8这里面有你要的东西
      

  3.   

    1、赋值可以使用
       void *memcpy( void *dest, const void *src, size_t count );
    2、char *变为CString,使用CString::Format来转换或者直接赋值
    3、CString转换为Char *,对CSting使用两次强制变换(LPSTR)(LPCTSTR)参考
    http://www.csdn.net/Develop/article/16%5C16622.shtm
      

  4.   

    1.字符串拷贝可以用strcpy()
      也可以用内存拷贝函数memcpy()
      也可以用字符串连接函数strcat()
      也可以用字符串输出格式化函数sprintf()
    2.char *-> CString
      char sz[10];
      CString m_sz;
      sz.Format("%s",sz);3. CString -> char *
       char sz[10];
       CString m_sz;
       strcpy(m_sz.GetBuffer(0),sz,10);
      

  5.   

    我的看法是char 只是单纯的字符串,而CString是一个类,除了提供字符串的功能外,还提供了许多关于字符串的操作函数
      

  6.   

    char是数据类型,CString是MFC中的类
    CString str;
    char ch[200];str和ch[200]数据互相转换可以参考
    http://www.csdn.net/Develop/article/16%5C16622.shtm
      

  7.   

    char是基本数据类型
    CString是MFC封装的类
    差别不小,不过在使用中基本上感觉不到太大的障碍,因为编译程序进行了隐式转换!