¿Cómo trabajar con arrays de char vacías en programación c

Del mismo modo que se puede declarar un vacío o no inicializado, float o int matriz, se puede crear una matriz de caracteres vacía con C de programación. Debe ser preciso, sin embargo: La matriz&rsquo-s tamaño debe ser de 1 mayor que la longitud máxima de la cadena para dar cuenta de que el carácter nulo. Además, usted tiene que asegurarse de que cualquier entrada llena el doesn gama&rsquo-t exceda la matriz&rsquo-s tamaño.

En Relleno de una Carbonizarse Matriz, la matriz Char primer nombre en la línea 5 puede contener 15 caracteres, más 1 para el al final de la cadena. Esa limitación de 15 caracteres es una suposición hecha por el programador- más primeros nombres son menos de 15 caracteres de longitud.

Llenar un CARBONIZARSE FORMACIÓN

Video: 52. Programación en C - Arreglos - Arreglos unidimensionales en C

#include int main () {char Nombre [16] -printf ("¿Cuál es su nombre? ") -fgets (nombre, 16, stdin) -printf ("Encantado de conocerla, sn%", Apellido) -Retorno (0) -}

Una función fgets () en la línea 8 se lee en los datos de la cadena apellido. El tamaño máximo de entrada se establece 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 utilizando el código fuente de un Relleno Carbonizarse Formación. Generar y ejecutar, utilizando su nombre como entrada.

Pruebe a ejecutar el programa de nuevo, pero llenar el buffer: escribir más de 15 caracteres. Tú&rsquo-ll ver que sólo los primeros 15 caracteres son almacenados en la matriz. Incluso la tecla Enter prensa ISN&rsquo-t almacena, lo que sería de otro modo cuando la entrada es menos de 15 caracteres.

Video: Tutorial Programación en C -19 - Arreglos

ejercicio 2: Modificar el código fuente del Ejercicio 4, de manera que el programa también le pide su apellido, almacenar esos datos en otra matriz. El programa entonces usted debe 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í:

Video: 30. Programación en C++ || Arreglos || Concepto de Arreglo Unidimensional

Nombre [0] == `D`Nombre [1] ==` a`firstname [2] == `n`firstname [3] ==` n`firstname [4] == ``

Ese&rsquo-s porque de entrada en C es corriente orientada, y entrar es parte de la corriente de entrada en cuanto a los fgets () es que se trate. Puede solucionar este problema mediante la obediencia ejercicio 6.

ejercicio 3: Reescribir el código fuente del Ejercicio 5, de modo que la función scanf () se utiliza para leer en la primera y última cadenas de nombres.

Por supuesto, el problema con la función scanf () es que doesn&rsquo-t cheque para asegurarse que la entrada está limitada a 15 caracteres - es decir, menos que usted indique que lo haga:

ejercicio 4: Modificar el scanf () funciones en el código fuente del Ejercicio 6, de modo que el carácter de conversión utilizado se escribe como% 15s. Generar y ejecutar.

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

Artículos Relacionados