/*Download:avarg.c*/
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
char * stringcat(char *s,...)
{
va_list strings; /*Speichert Information für va_arg und va_end*/
char *p;
/* Copy first string */
va_start(strings,s); /*Zeigt auf dem ersten Parmeter string1*/
if ((p = va_arg(strings,char *)) == NULL)
{
*s = '\0';
return s; /*Falls nur ein Argument übergeben wurde*/
}
else
strcpy(s,p);
/* Append others */
while ((p = va_arg(strings,char *)) != NULL)
strcat(s,p);
return s;
}
int main()
{
char buf[100];
char string1[10],string2[10],string3[10];
char c = '/';
int prozent=100;
int teiler = 3;
float schnitt = 33.34;
char string[] = "und das als String"
sprintf(string1,"%d\% ",prozent);
sprintf(string2," %c%d ",c,teiler);
sprintf(string3," =%.2f\% ",schnitt);
stringcat(buf,string1,string2,string3,string,NULL);
printf("%s\n",buf);
return 0;
}
|