Usted está buscando el sprintf
familia de funciones. Su formato general es:
char output[80];
sprintf(output, "No record with name %s found\n", inputString);
Sin embargo, sprintf
por sí mismo es extremadamente peligroso. Es propenso a algo llamado desbordamientos de búfer. Lo que esto significa es que sprintf no tiene idea de qué tan grande es la cadena output
que le proporcionó, por lo que voluntariamente le escribirá más datos de los disponibles. Por ejemplo, esto va a compilar limpiamente, pero se sobreponen a memoria válida — y no hay manera de dejar sprintf
sabe que está haciendo algo mal:
char output[10];
sprintf(output, "%s", "This string is too long");
La solución es utilizar una función como snprintf
, que tiene una longitud parámetro:
char output[10];
snprintf(output, sizeof output, "%s", "This string is too long, but will be truncated");
o, si estás en un sistema Windows, utilizar las variantes _sntprintf
y amigos, que protegen contra desbordamiento de cualquiera de las cadenas de entrada o de salida.
Hágase un favor y ir a comprar "El Lenguaje de Programación C" por Kernigham y Ritchie. – Pete
Gracias Pete, lo haré. – itsaboutcode
http://www.eskimo.com/~scs/cclass/cclass.html –