怎么样把CString 转换为 char []????

解决方案 »

  1.   

    如果不是unicode工程,直接用strcpy拷贝,不需要转换如果是unicode工程,用函数WideCharToMultiByte,参考http://www.cppblog.com/greatws/archive/2008/08/31/60546.html
      

  2.   

    http://book.77169.org/ask18/how107610.htm
    看看能不能帮到你。
      

  3.   

    CString str;
    char *zz=str.GetBuf();
      

  4.   

    如果是UNICODE,可以用WideCharToMultiByte,或者W2A宏
    如果是ANSI,直接调用str.GetBuffer()即可以
      

  5.   


    这个能转换成char*;
    CString  str1 = "hello world";
    LPCTSTR  p = str1;//将CString类型的str1转换为char * ,得到指针p
      

  6.   

    对于宽字符unicode:
    CString str;
    wcscpy_s(*char,str.GetLength()+1,str);//对于ANSI也可以用相关的拷贝函数,详细的见MSDN
      

  7.   

    CString m_strEditRXData;
    char FengGe[500];
    m_strEditRXData="XXXXX"//给CString型变量m_strEditRXData赋值
    //下面是把CString型变量m_strEditRXData放入char型数组FengGe中
    memset(FengGe,0x00,500); //注意字符型数组定义多大,这里最后一个参数就写多大,在这是500  
    memcpy(FengGe,(LPCSTR)m_strEditRXData,m_strEditRXData.GetAllocLength());上面最后两行执行完后就把把CString 转换为 char [],你自己试试,希望对你有帮助!!
      

  8.   

    char buf[100] = {0};
    CString str = "I love vc";
    strcpy(buf, (LPCTSTR)str);
      

  9.   

    ANSI:
    CString::GetBuffer()或者强制转换 (LPCTSTR)CStringUnicode:先用WideCharToMultiByte转为ANSI
      

  10.   

    GetBuffer()即可以
    用后要释放ReleaseBuffer();
      

  11.   

    char buf[100] = {0}; 
    CString str = "I love vc"; 
    sprintf(buff,"%s",str);
      

  12.   

    不用转吧...
    直接用下标...
    CString str = "abcd"
    if( str[0] == 'a' )
      

  13.   

    char buf[100] = {0}; 
    CString str = "I love vc"; 
    sprintf(buff,"%s",str);
      

  14.   

    方法有很多,这里我列举三种:
    一.使用GetBuffer函数
    char *p;
    CString str="hello";
    p=str.GetBuffer(str.GetLength());
    str.ReleaseBuffer();二.使用memcpy()函数
    CString mCS=_T("hello");
    char mch[20];
    memcpy(mch,mCS,mCS.GetLength());三.使用LPCTSTR强制类型转换
    char *ch;
    CString str=_T("hello");
    ch=(LPSTR)(LPCTSTR)str;以上三种方法都可以的.