如何将CString转成char数组????????????????  
例如:  
 CString str="test";  
转成  
char   buf[50]  ;

解决方案 »

  1.   

    CString to char *
    //16:56 2003-7-21
    method 1 :
    CString str("xxx");
    char* car = new char[3];
    sprintf(car,"%s",str);
    delete car[];
    method 2:
    CString str("1556666");
    const char* pBuff = (char*)(LPCSTR) str;
    method 3:
    CString str="try";
    char * pBuffer= new char[str.GetLenght()+1]; //GetLenght does not
                                                        // include the '\0'
    strcpy(pBuffer,str);
    delete pBuffer[];一天之内居然回复两个相同的问题!
      

  2.   

    bufCString 与char []之间的转换.   char str[100] = "str";CString sstr = "sstr";sstr.Format("%s",str);str = LPCTSTR sstr;strcpy(str,(LPCTSTR)sstr);如果是赋值,则要:CString str = "haha";
     char *p =(char *)(LPCTSTR)(str); 
     strcpy(p,"HaHa");str的值变了.
      

  3.   

    ss.Mid(0)就是一个char*刚刚和BCB的AnsiString混了
      

  4.   

    CString str="test";  
    char * pStr=str.GetBuffer();
      

  5.   

    CString str="test";
    char temp[90];
    sprintf(temp,"%s",str);
      

  6.   

    1 CString 转换为  char*
       CString str("111111");
       ing nLenth = str.GetLength (); 
       char *sz = new char [nLength]; 
       sz = str.GetBuffer ( 0 );
    2 char * 转换为 CString 
       char sz[128]; 
       CString str; 
       str.Format ( "%s", sz );
      

  7.   

    strncpy(buf, (LPSTR)(LPCTSTR)str, 50);
      

  8.   

    Sorry 应该是:
    memset(buf, 0, sizeof(buf));
    strncpy(buf, (LPSTR)(LPCTSTR)str, 49);
      

  9.   

    CString To char *
    CString csTest="This is a Test!";
    char *pChar;
    pChar=(LPSTR)(LPCTSTR)csTest;char pChar[100]中pChar就是char *的
      

  10.   

    CString csDemo="CString To Char ";
    char *pChar=(LPSTR)(LPCTSTR)csDemo;***************************************        CString m_med= "this is a test";
            char *str=m_med.GetBufferSetLength(m_med.GetLength());
      

  11.   

    看你要做什么了。直接赋值:buf[i] = str[i]; str[i] = buf[i];用作参数:应该是与字符指针互换(若是常指针的话,直接用即可)
         str.GetBuffer(255); // 255 是缓冲区的最小长度  taianmonkey 的第二种方法稍嫌麻烦,但更精确一点;第一种方法是错的,破坏了
    CString 的常量性。如果在同一个作用域内有两个 CString 量,用这种方法改变其值,
    你会发现当一个量改变时,另一个量也变了。我怀疑微软在 CString 类中使用了静态成员。