请教一个sprintf的问题,帮帮忙

sprintf(TempBuf,"调试 %s %s %s", Deal(Buf1),Deal(Buf2),Deal(Buf3));

char *Deal(char *inbuf)
{
char acinbuf[100+1];

memset(acinbuf, 0x00, sizeof(acinbuf));
snprintf(acinbuf, sizeof(acinbuf), "%s", inbuf);

/*对acinbuf处理,省略*/

return acinbuf;

}

结果打印TempBuf发现,三个%s的内容是一样的,都是Buf3处理后的结果、什么原因呢?

最好把代码贴的完整一些。光这一行是没办法判断原因的

deal(buf1),deal(buf2)的结果分别赋值给不同的变量a,b试试,然后
sprintf(buf, “数据%s %s”, a,b);