strvcat & strvcpy

#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("%sn", a);

}

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *