c++mfc例子

ah_2056 2018-07-31 11:47:58
实在搞不懂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
...全文
544 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
worldy 2018-10-18
  • 打赏
  • 举报
回复
char combo=new char[size]; //size必须指定大小
并且应该是

char* combo=new char[size];
worldy 2018-10-18
  • 打赏
  • 举报
回复
char combo=new char[size] //size必须指定大小
worldy 2018-09-21
  • 打赏
  • 举报
回复
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
}
shen_wei 2018-09-20
  • 打赏
  • 举报
回复
CString 类更简单快捷 直接 += 操作即可

CString Str,Str1,Str2,Str3,Str4;

Str += (Str1 + Str2 + Str3 + Str4);
棉猴 2018-08-27
  • 打赏
  • 举报
回复
MFC的话就用CString类啊
 CString  _stdcall stringCombo(CString* str1, CString* str2)
{
CString str3= "upstring=";

CString str4 = "&upFullFileName=";

CString combo = str3+ str1+ str4+ str2;


return combo;
}
_肆 2018-08-27
  • 打赏
  • 举报
回复
2楼正解,new char[]这种东西,你程序会崩溃的,如果你不特定要求char*格式的话,用cstring更方便,可以直接加
三岁、就很帅 2018-08-24
  • 打赏
  • 举报
回复
引入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;
}
三岁、就很帅 2018-08-24
  • 打赏
  • 举报
回复
引用 2 楼 sghcpt 的回复:
[quote=引用 1 楼 ah_2056 的回复:]
应该有人会哦。

楼主,下面代码可供参考~~~~

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;
}
[/quote]兄弟666
qq_33487700 2018-08-24
  • 打赏
  • 举报
回复
MFC里面用CString处理字符串链接问题很方便的,方法都已近重载好了,只需要调用一下即可
杀意已决 2018-08-01
  • 打赏
  • 举报
回复
用snprintf。 既然用了MFC工程,为什么不用Cstring或者string,它们都重载了+,字符串处理很方便
sghcpt 2018-08-01
  • 打赏
  • 举报
回复
引用 1 楼 ah_2056 的回复:
应该有人会哦。

楼主,下面代码可供参考~~~~

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;
}
ah_2056 2018-08-01
  • 打赏
  • 举报
回复
应该有人会哦。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧