Primero el programa con scanf:
#include <stdio.h>
#include <string.h> /*Cargamos las funciones especificas de la variable cadena*/
/*LA CADENA ACABA CON UN ESPACIO EN BLANCO O SALTO DE LINEA*/
char a[100], b[100];
int main(void)
{
printf("Escriba unas palabras: "); scanf("%s", a);
printf("La primera letra de la cadena es: %c.\n", a[0]);
printf("La cadena mide: %i.\n", strlen(a));
printf("Escriba una nueva cadena: "); scanf("%s", b);
printf("La concatenacion de ambas cadenas vale: %s", strcat(a,b));
return 0;
}
La ejecuación del programa muestra las siguiente secuencia de pantallas:
En el caso de escribir dos palabras separadas por un espacio en blanco la salida del programa muestra:
Donde se ve que la segunda palabra se guarda como en la cadena b directamente sin darte opcion a guardar otro valor.
Ahora con gets:
#include <stdio.h>
#include <string.h> /*Cargamos las funciones especificas de la variable cadena*/
/*LA CADENA ACABA CON UN SALTO DE LINEA*/
char a[100], b[100];
int main(void)
{
printf("Escriba unas palabras: "); gets(a);
printf("La primera letra de la cadena es: %c.\n", a[0]);
printf("La cadena mide: %i.\n", strlen(a));
printf("Escriba una nueva cadena: "); gets(b);
printf("La concatenacion de ambas cadenas vale: %s", strcat(a,b));
return 0;
}
Al ejecutar el programa, observamos que la introdución de espacios en blanco en la cadena de caracteres no finaliza la lectura de la misma, sino que prosigue hasta encontrar un salto de linea. La salida del programa es la siguiente:
Un saludo.
No hay comentarios:
Publicar un comentario