实在搞不懂C++,这个例子怎么做! char* _stdcall stringCombo(char* str1, char* str2)
{
char*  str3= "upstring=";char*  str4 = "&upFullFileName=";char combo=new char[]
 sprintf_s(combo, sizeof(combo) , "%s, %s,%s,%s", str1 , str2,str3,str4);
return combo
}//combo需要把str1,str2,str3,str4拼接起来,请问怎么弄?自己写的例子不行,请问怎么做,C++MFC用的VS2015

解决方案 »

  1.   

    楼主,下面代码可供参考~~~~char* _stdcall stringCombo(char* str1, char* str2)
    {
    char*  str3 = "upstring=";
    char*  str4 = "&upFullFileName="; int nLen = strlen(str3);
    nLen += strlen(str4); if (str1)
    nLen += strlen(str1); if (str2)
    nLen += strlen(str2); char* combo = new char[nLen + 1];
    if (combo)
    {
    memset(combo, 0, nLen + 1);
    sprintf_s(combo, nLen + 1, "%s%s%s%s", str3, str1, str4, str2);
    } return combo;
    }
    int main()
    {
    char* pRetChar = stringCombo("hello", "word");
    if (pRetChar)
    {
    printf_s(pRetChar);
    delete[] pRetChar;
    }
    return 0;
    }
      

  2.   

    用snprintf。既然用了MFC工程,为什么不用Cstring或者string,它们都重载了+,字符串处理很方便
      

  3.   

    MFC里面用CString处理字符串链接问题很方便的,方法都已近重载好了,只需要调用一下即可
      

  4.   

    楼主,下面代码可供参考~~~~char* _stdcall stringCombo(char* str1, char* str2)
    {
    char*  str3 = "upstring=";
    char*  str4 = "&upFullFileName="; int nLen = strlen(str3);
    nLen += strlen(str4); if (str1)
    nLen += strlen(str1); if (str2)
    nLen += strlen(str2); char* combo = new char[nLen + 1];
    if (combo)
    {
    memset(combo, 0, nLen + 1);
    sprintf_s(combo, nLen + 1, "%s%s%s%s", str3, str1, str4, str2);
    } return combo;
    }
    int main()
    {
    char* pRetChar = stringCombo("hello", "word");
    if (pRetChar)
    {
    printf_s(pRetChar);
    delete[] pRetChar;
    }
    return 0;
    }兄弟666
      

  5.   

    引入CString  更加方便   
    CString stringCombo(const &CString str1, const &CString str2)
    {
        CString  str3 = "upstring=";
        CString  str4 = "&upFullFileName=";
     
     return str3 + str1 + str4 + str2;
    }
     
     
    int main()
    {
        CString pRetChar = stringCombo("hello", "word");
        TRACE(pRetChar);
        return 0;
    }
      

  6.   

    2楼正解,new char[]这种东西,你程序会崩溃的,如果你不特定要求char*格式的话,用cstring更方便,可以直接加
      

  7.   

    MFC的话就用CString类啊
     CString  _stdcall stringCombo(CString* str1, CString* str2)
    {
    CString  str3= "upstring=";CString str4 = "&upFullFileName=";CString combo = str3+ str1+ str4+ str2;
    return combo;
    }
      

  8.   

    CString 类更简单快捷 直接  += 操作即可CString Str,Str1,Str2,Str3,Str4;Str += (Str1 + Str2 + Str3 + Str4);
      

  9.   

    char* _stdcall stringCombo(char* str1, char* str2) 
    {
    char*  str3= "upstring=";
    char*  str4 = "&upFullFileName=";
    int L=0;
    char combo=new char[1024]; //使用一个大点的缓冲区,以确保够用
    char* px=combo; L=strlen(str3);
    memcpy(px,str3,L);
    px+=L;

    L=strlen(str1);
    memcpy(px,str1,L);
    px[L]=";";//分隔一下
    px++; L=strlen(str4);
    memcpy(px,str4,L);
    px+=L; L=strlen(str2);
    memcpy(px,str2,L);
    px[L]=0; return combo
    }
      

  10.   

    char combo=new char[size] //size必须指定大小
      

  11.   

    char combo=new char[size]; //size必须指定大小
    并且应该是char* combo=new char[size];