¿Cómo trabajar con matrices de char vacíos en la programación c

Así como usted puede declarar un vacío o sin inicializar, float o int matriz, puede crear una matriz de caracteres vacía con C de programación. Usted debe ser precisa, sin embargo: El tamaño de la matriz debe ser 1 mayor que la longitud máxima de la cadena para dar cuenta de que el carácter NULL. También, usted tiene que asegurarse de que todo lo que de entrada se llena la matriz no exceda el tamaño de la matriz.

En Llenar un Char Array, la matriz apellido carbón en la Línea 5 puede contener 15 caracteres, más 1 para el 0 al final de la cadena. Esa limitación de 15 caracteres es una suposición hecha por el programmer- más nombres son menos de 15 caracteres de longitud.

LLENADO A CHAR ARRAY

#include int apellido main () {char [16] -printf ("¿Cuál es su nombre?") -fgets (nombre, 16, stdin) -printf ("Encantado de conocerte,% s n", apellido) - volver (0) -}

Una función fgets () en la línea 8 lee datos de la cadena de apellido. El tamaño máximo de entrada está establecido en 16 caracteres, que ya representa el carácter nulo debido a fgets () es inteligente de esa manera. El texto se lee de la entrada estándar, o la entrada estándar.

Ejercicio 1: Crear un nuevo proyecto con el código fuente desde Llenar un Char Matriz. Genere y ejecute, usando su nombre como entrada.

Intente ejecutar el programa de nuevo, pero llenar el buffer: Escriba más de 15 caracteres. Vas a ver que sólo los primeros 15 caracteres se almacenan en la matriz. Incluso la prensa tecla Intro no se almacena, que sería de otro modo cuando la entrada es menos de 15 caracteres.

Ejercicio 2: Modificar el código fuente del Ejercicio 4 para que el programa también pide su apellido, el almacenamiento de esos datos en otra matriz. El programa debe entonces saludar utilizando tanto sus nombres y apellidos.

Sí, la pulsación de tecla Intro se almacena como parte de su nombre, que es la forma de entrada es leído por la función () fgets. Si su nombre es Dan, la matriz se ve así:

apellido [0] == 'D'apellido [1] ==' a'firstname [2] == 'n'firstname [3] ==' n'firstname [4] == ' 0'

Esto se debe a la entrada en C está orientada corriente, y Enter es parte de la corriente de entrada hasta las fgets () la función se refiere. Puede solucionar este problema mediante la obediencia Ejercicio 6.

Ejercicio 3: Vuelva a escribir el código fuente del Ejercicio 5 para que la función scanf () se utiliza para leer en las primeras y últimas cadenas de nombre.

Por supuesto, el problema con la función scanf () es que no se comprueba para asegurarse que la entrada está limitada a 15 caracteres - es decir, a menos que usted dirige a hacerlo:

Ejercicio 4: Modifique el scanf () funciones en el código fuente del Ejercicio 6 por lo que el carácter de conversión utilizado se escribe como% 15s. Genere y ejecute.

El carácter de conversión% 15s indica a la función primera scanf () sólo para leer los primeros 15 caracteres de entrada y colóquela en la matriz de caracteres (string). Cualquier texto adicional se lee a continuación, por la función de segundo scanf (), y cualquier texto adicional después de que se descarta.




» » » » ¿Cómo trabajar con matrices de char vacíos en la programación c