C - Vsprintf和变量参数列表

时间:2012-10-10 16:15:22

标签: c list arguments concatenation printf

现在,该程序的目标是通过变量参数列表获取四个名称,并使用vsprintf()将它们连接成一个名为' total'的单个字符串。作为当前的程序,只有名字出现在字符串' total'中。我该如何解决这个问题?谢谢:))

1 个答案:

答案 0 :(得分:3)

签名为int vsprintf(char *str, const char *format, va_list ap);

第二个参数是通常的printf格式字符串......所以:

void concat(char *total, ...)
{
   va_list pointer;

   va_start(pointer, total);
   vsprintf(total, "%s %s %s %s", pointer);
   va_end(pointer);
}

这当然只适用于4个字符串,但您要求使用vsprintf实现此功能,这对于通用情况不起作用。

注意:您遗失了<stdio.h>,而且int main()