2012-10-10 32 views
-1

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

+0

'INT vsprintf中(字符*海峡,为const char *格式,va_list的AP);' –

回答

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()

+0

太谢谢你了:)))))这就是我需要的东西:)感谢很多:) – Matthew

+0

谢谢:)你帮了很多:) – Matthew