CString str;
str="123456789";   //str的内容是变长的,随业务的不同 str内容是不样,长度也是不确定的。int itempDataBuffer=8+str.GetLength();   //统计要发送的部字节数
char* DataBuffer = new char[itempDataBuffer];
memset( DataBuffer, 0, sizeof(char)*itempDataBuffer ); DataBuffer[] 的前面8个字节已付值,但从第8个字节到最后一个的内容要等于str
像这样的功能要什么做? 只能用FOR来做嘛?有没更好的处理办法?

解决方案 »

  1.   

    memcpy(DataBuffer, (LPSTR)(LPCSTR)str, str.GetLength());
    或者
    memcpy(DataBuffer, str.GetBuffer(), str.GetLength());
      

  2.   

    忘+了
    memcpy(DataBuffer+8, (LPSTR)(LPCSTR)str, str.GetLength()); 
      

  3.   

    memcpy(DataBuffer + 8, ... ,len) 或 strcpy(DataBuffer + 8 , ... )但
    int itempDataBuffer=8+str.GetLength(); 你这样取长度可能有问题,要是有汉字之类的
      

  4.   

    str.GetLength();  好像是表示字符的个数吧一个汉字也计为 1
      

  5.   

    到时候我会把STR转化成BASE64.
      

  6.   

    DataBuffer = new char[nCount + 1];
    这样才对吧,比你需要的空间多一个字符。
      

  7.   

    看你要求效率还是要求代码简单不要求效率就用cstring要求效率就用memcpy
      

  8.   

    strcat可合并两个字符串,可以看看哦
      

  9.   

    memcpy(DataBuffer+8, (LPSTR)(LPCSTR)str, str.GetLength());