很简单的一个问题,我想的头都疼了,不知道从那里下手。字符串在c,c++语言里面用char*可以定义,也可以用数组定义,但是在vc++里面有CString,他们有什么不同吗?我知道类CString支持更多的操作,可是,我想将CSting定义的字符串转换成为char*字符串,能否实现??如果可以如何实现?
   如果我定义了一个CString类型的缓冲区,如何将他返回为一个unsigned char*类型。希望各位高手不吝赐教。
   初学VC,许多概念还是摸棱两可。我得msdn这个操作系统下装好了,不能用呢。

解决方案 »

  1.   

    如何将CString的一个变量赋值给一个CHAR的字符数组char ch[20] = "\0";
    CString str = "hello";strcpy(ch, str);sprintf()
      

  2.   

    如果只是得到char *,很简单。举个例子:
    CString str;
    char *p = (LPCSTR)str;
      

  3.   

    其实,从数据类型的角度,char*不能简单地认为是字符窜,而是指向字符窜的指针,之所以平时我们老是使用char*来传递字符窜的值,是因为我们默认字符窜的结束符是'\0',那么我们只要知道一个字符窜的首地址,就能得到整个字符窜,这样,就有了char*
      

  4.   

    to pcman1990(pcman) 
    谢谢你的回复,那么请问,CString能不能在控制台下使用呢?
      

  5.   

    char *p = {LPSTR)(LPCTSTR)CString("Hello");这样用!
      

  6.   

    方法一:
    CString str = "String";
    char *pChar = str.GetBuffer( str.GetLength() );
    cout << pChar << endl;
    str.ReleaseBuffer();方法二:
    pChar = (LPTSTR)(LPCTSTR)str;
    cout << pChar << endl;CString可以在控制台程序中使用,在创建工程时,选中支持MFC即可