Las cadenas de caracteres puts gets en C

– Prog009.cpp

/*Prog009.cpp */

#include<stdio.h>

void main()

{
char texto[65];
printf(«Escribe tu nombre y dos apellidos: «); scanf(«%s»,texto);

printf(«nAcabas de escribir : %s»,texto);
}

Observa que el valor de la variable “texto” es todo lo que hemos escrito antes del primer espacio.

– Prog010.cpp

/* Prog010.cpp */

#include <stdio.h>

void main()

{

char texto[65];
puts(«Escribe tu nombre y dos apellidos: «); gets(texto);
puts(«Acabas de escribir : «); puts(texto);

}

Observa que ahora sí, escribe todo lo que hemos escrito ante la pregunta.

La función gets(texto) es equivalente a scanf, pero con dos diferencias fundamentales:

  • Sólo funciona para cadenas de caracteres
  • Abarca todo el texto que escribamos hasta que pulsamos la tecla [Return]. Por lo tanto es la que nos interesa si hay espacios en blanco.

puts es equivalente a printf, pero con dos diferencias fundamentales:

  • Sólo funciona para cadenas de caracteres.
  • No podemos utilizar códigos de formato para “imprimir” variables.

Fuente: Programación en C/C++ (Manual FV) de Fermí Vilà