Codificación aprenderaprogramar.com: CU00528F
PUTS Y GETS. DIFERENCIA CON PRINTF Y SCANF
Las funciones printf y scanf proporcionan un marco general para mostrar y pedir datos de distintos tipos. En el caso de datos de tipo cadenas de caracteres (coloquialmente Strings) C dispone de instrucciones específicas que simplifican la codificación: puts() y gets(). La función puts recibe un único argumento: la cadena de caracteres a mostrar por pantalla.
Escribe este código y comprueba la equivalencia con printf que proporciona puts para cadenas de caracteres:
#include <stdio.h> |
La función gets() recibe como único argumento la variable en la que debe almacenarse una entrada de usuario que va a ser considerada como una cadena de caracteres. Ejecuta este programa.
#include <stdio.h> |
gets se diferencia de scanf en que scanf sólo captura una cadena de texto hasta que aparece el primer espacio o fin de línea (desechando todo lo que venga a continuación). De este modo si tratamos de capturar con scanf el texto “Amanece un maravilloso día aquí en Alaska” lo único que capturaremos es “Amanece”, perdiéndose el resto del texto. En cambio con gets se captura todo el texto. Tanto con scanf como con gets se introduce automáticamente un fin de cadena (\0) al final del texto capturado (de ahí que un array de caracteres siempre tenga un carácter adicional además del texto visible, el correspondiente al final de cadena.)
Modifica el programa anterior usando scanf ("%s",frase); en lugar de gets (frase) y comprueba las diferencias cuando introduces frases con espacios intermedios.
Muchas veces no se usan puts y gets porque las funciones printf y scanf son más generales, pero para el tratamiento de cadenas de texto en general resultan ventajosas las instrucciones específicas por la comodidad que aportan.
EJERCICIO
Crea un programa que usando puts y gets (sin usar printf ni scanf) pida al usuario su nombre y ciudad de nacimiento. Tras esto se deberá mostrar el siguiente mensaje: “Bienvenido nombre, encantado de hablar con alguien de ciudad”. Donde nombre y ciudad deben ser reemplazados por los datos proporcionados por el usuario. Por ejemplo si el usuario introduce como nombre Juan y como ciudad Lima, deberá mostrarse “Bienvenido Juan, encatando de hablar con alguien de Lima”.
Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.