stdio.h
Función vsprintf ANSI C
int vsprintf(char *cadena, const char *formato, va_list argumentos);
Esta función es equivalente a sprintf, con la lista de argumentos de variables reemplazado por argumentos, que habrá sido inicializado por la macro va_start (y posiblemente por llamadas posteriores a va_arg. La función vsprintf no invoca la macro va_end. Si se copian objetos que se superponen, entonces el comportamiento no está definido.
Valor de retorno:
La función vsprintf retorna el número de caracteres escritos al array, sin contar el carácter nulo al final.
Ejemplo:
#include <stdio.h> #include <stdarg.h> int mi_vsprintf( char *cadena, const char *formato, ... ) { va_list listaPtr; int resultado=0; va_start( listaPtr, formato ); resultado = vsprintf( cadena, formato, listaPtr ); va_end( listaPtr ); return resultado; } int main() { char nombre[20], mensaje[81]; unsigned int edad=0; printf( "Escriba su nombre: " ); scanf( "%s", nombre ); printf( "Escriba su edad: " ); scanf( "%u", &edad ); mi_vsprintf( mensaje, "\nHola %s. Tienes %d anyos.\n", nombre, edad ); puts( mensaje ); return 0; }