string a = "aaaaaaaaaaaaa";
string b = "bbbbbbbbbbbbb";char* p;p = a + b;编译会出错,说是=好不能这样将他们转换那怎么才能达到我要的目的
谢谢

解决方案 »

  1.   

    1、
    string a = "aaaaaaaaaaaaa";
    string b = "bbbbbbbbbbbbb";
    char* p = new char[a.length() + b.length() + 1];
    strcpy(p, a.c_str());
    strcat(p, b.c_str());
    ...
    if(p)
    delete []p;2、
    string a = "aaaaaaaaaaaaa";
    string b = "bbbbbbbbbbbbb";
    string c = a+b;
    char *p = new char[c.length() + 1];
    strcpy(p, c.c_str());
    if(p)
    delete []p;
      

  2.   

    string c;
    char* p;
    c = a + b;
    p = c.getbuffer();
    .......
    c.releasebuffer();//最后release一下
      

  3.   

    string temp;
    temp=a+b;
    strcpy(p,temp);
      

  4.   

    其实,stl可以完全取代传统C/C++开发的。没必要用char *吧?除非很特殊的情况。
      

  5.   

    CString strValue="f_uck";
    char* p=(char*)strValue;
      

  6.   

    string是STL class,没有GetBuffer()一、CString获得char *
    CString str;
    str.GetBuffer(0);
    二、STL string获得char *
    string str;
    str.c_str();
      

  7.   

    string a = "aaaaaaaaaaaaa";
    string b = "bbbbbbbbbbbbb";char* p=strcat(a,b);
      

  8.   

    对于CString GetBuffer(0)的时候,可以不使用ReleaseBuffer()。
    一旦GetBuffer(n),n大于零,一定要ReleaseBuffer()。STL是跨平台的类库,建议使用STL这类优秀的类库。
      

  9.   

    to lzzqqq(Jonersen) :
    strcat()的参数是char *和const char *
    不可以接收string参数。
      

  10.   

    除非是char *p指向了其它指针,否则必须要new
    或者你知道字符串大小的话,可以直接定义一个char数组