怎么将CString的变量复值到char* 的变量里
CString str="Hello";
char *chr=new char(str.getLength+1);
??????
还有用char *chr=new char(str.getLength+1);这样开辟空间合理吗?

解决方案 »

  1.   

    1.char *strcpy( char *strDestination, const char *strSource );2.不合理。getLength是字符数,如果是unicode方式,需×2。
      

  2.   

    如果用
    char *chr=new char(sizeof(str)/int+1);是不是就ok了
      

  3.   

    Sorry打错了 
    char *chr=new char(sizeof(str)/sizeof(int)+1);
      

  4.   

    CString str="Hello";
    char *chr=new char(str.GetLength()+1);
    chr = str.GetBuffer(0);
      

  5.   

    怎么搞的还是打错了^^!
    char *chr=new char(sizeof(str)/sizeof(char)+1);
      

  6.   

    CString str1="fsadjkjk";
    char *str=new char[str.GetLength()+1];
    strcpy(str,str1);
      

  7.   

    sizeof(str)是错的,str多长根里面有多少字符没有关系,是个常量
      

  8.   

    CString str1="fsadjkjk";
    char *str=new char[str1.GetLength()+1];
    strcpy(str,str1);
      

  9.   

    CString str="Hello";
    char *chr=new char(str.getLength() + 1);memcpy(chr, str.GetBuffer(str.getLength() + 1), str.getLength() + 1);
      

  10.   

    sizeof(str) 等于4;
    因为str是一个地址,为4个字节。
      

  11.   

    bluebohe(薄荷),你用strcpy不安全
      

  12.   

    CString str = "Hello";
    char *chr=new char[str.GetLength() + 1]; ZeroMemory(chr,str.GetLength() + 1);
    for(int i = 0; i < str.GetLength(); i++)
    chr[i] = str.GetAt(i);
      

  13.   

    CString csString="CString to char!";
    char *pchar;
    pchar=(LPSTR)(LPCTSTR)csString;
      

  14.   

    CString str = "asdf";
    char *pTemp = str.GetBuffer(str.GetLength());
    char *pChar = new char[str.GetLength() + 1];
    strcpy(pChar, pTemp);
    str.ReleaseBuffer();
      

  15.   

    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());
      

  16.   

    你可以试试定义一个 CString str = _T("试试");在定义了_UNICODE后, str.GetLength() 返回2还是4。如果你仅仅是想使用而不是生成char*, 就用 yintongshun(踏雪有痕) 的方法。new的话,可以这样:TCHAR* chr = new TCHAR(str.GetLength() + 1);如果一定要象你开始那样写,那么就要以下面这种方式取得字节数:int nLen = 0;#ifdef _UNICODE
      nLen = str.GetLength() * 2;
    #else
      nLen = str.GetLength();
    #endifchar *chr = new char[nLen + 1];