2012-10-10 35 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