2008-03-03, 21:35
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
/* Just like strcat(), but allows multiple strings
* on the same line.
*/
char *strvcat(char * s1, char * args, ...) {
va_list ap;
va_start(ap, args);
while (args != NULL) {
strcat(s1, args);
args = va_arg(ap, char *);
}
va_end(ap);
return s1;
}
/* Just like strcpy(), but allows multiple strings
* on the same line.
*/
char *strvcpy(char * s1, char * args, ...) {
va_list ap;
va_start(ap, args);
strcpy(s1, args);
args = va_arg(ap, char *);
while (args != NULL) {
strcat(s1, args);
args = va_arg(ap, char *);
}
va_end(ap);
return s1;
}
int main() {
char a[8192] = "HOLA MUNDO ! -- ";
strvcpy(a, "Hola", " ", "mundo", "!", "\n", NULL);
strvcat(a, "Hola", " ", "mundo", "!", "\n", NULL);
printf("%s\n", a);
}