Hola y bienvenido a esta elección.
Vamos a ver a continuación cómo leer una cadena de parte del usuario.
Están listos?
Vamos.
Bien, vamos a seguir trabajando entonces con nuestro ejemplo para solicitar información al usuario.
Sin embargo, vamos a ver varias diferencias importantes cuando solicitamos una cadena al usuario.
Así que en este momento hemos solicitado un valor de tipo numérico y podemos observar que para los tipos
numéricos o también para los tipos flotantes doble valores de tipo lógico.
Tenemos que especificar la dirección de memoria para que se pueda almacenar correctamente la información
que el usuario proporciona desde la consola y se almacena correctamente en nuestra variable.
Sin embargo, eso solamente es para los tipos de datos mencionados.
Si vamos a trabajar con cadenas, se dice que las cadenas por default se pasa la referencia de nuestra
variable.
Es decir, que no hay necesidad de especificar la dirección de memoria de una cadena.
De manera automática se pasa a la referencia de memoria de una cadena.
Esto es así debido a que recordemos que las cadenas en el lenguaje C se implementan con arreglos y realmente
son los arreglos los que se pasan por referencia.
Esto lo vamos a ver en su momento cuando veamos el tema de funciones a mucho más detalle.
Sin embargo, los tipos simples como los tipos enteros, flotante, doble, lógico, etcétera Este tipo
de datos se conocen como tipos primitivos o tipos básicos.
En cambio, los arreglos, debido a que pueden almacenar varios valores, entonces se conocen como tipos
compuestos y por ello es que se pasa de manera automática la referencia de esta variable, es decir,
su dirección de memoria.
Así que vamos a hacer algunos cambios.
Vamos a definir en primer lugar una variable llamada tamaño cadena.
Yo no voy a utilizar caracteres especiales como la letra ñ, ya que al momento de descargar y que ustedes
quieran utilizar este código podría provocar algunos problemas.
Ustedes pueden utilizarla, pero de momento yo no la voy a estar utilizando ya que pueden entender ese
tipo de problemas.
Bien, entonces voy a definir esta variable llamada tamaño cadena y le voy a asignar el valor de días.
Esto para almacenar hasta nueve caracteres, ya que recordemos que el 10.º carácter tendría que ser
el carácter de fin de cadena o diagonal inversa cero.
Ahora voy a definir mi arreglo, que va a ser un arreglo de caracteres precisamente para que podamos
almacenar un nombre.
La variable se va a llamar nombre y la cantidad de elementos que puede almacenar este arreglo.
Esta cadena va a ser según la cantidad de elementos que hemos definido en la variable anterior, en
una variable de tamaño cadena.
Así que hasta el momento estamos creando esta variable en memoria.
Es un arreglo con los índices.
Tenemos estas celdas de cero hasta nueve, es decir, diez elementos.
Bien, posteriormente le vamos a pedir al usuario proporciona un nombre en lugar de un número.
Va a proporcionar un nombre y vamos a leer la información del usuario.
Según hemos comentado los arreglos no tenemos que especificar la dirección de memoria.
Así que, a diferencia de los valores de tipo primitivo o básicos, un arreglo simplemente proporcionamos
el nombre de la variable y de manera automática se va a pasar la referencia de memoria o la dirección
de memoria de esta variable, de este arreglo.
Y entonces, utilizando la función scanf, vamos a leer la información que proporcione el usuario.
Recordemos que estamos importando la biblioteca STD h STD.
Recordemos que significa estándar y posteriormente eso significa input output.
Así que esta biblioteca tiene funciones tanto para la entrada, es decir, input y también para la salida,
es decir, output.
Funciones de tipo input es precisamente la función escanea b para leer información y funciones de tipo
output.
Es la función de printf que mandamos información a la consola.
Por ello es que estamos utilizando esta biblioteca de estándar input output.
Así que esta biblioteca tiene tanto la función de scanf y la función de printf.
Por ello podemos utilizarla sin ningún problema.
Bien, con esto ya estamos leyendo entonces la información, vamos a mandarla a imprimir.
El nombre proporcionado es pero ahora para mandar a imprimir una cadena recordemos que el formato es
porcentaje S, así que mandamos a imprimir con porcentaje S y posteriormente mandamos a imprimir la
variable de nombre.
También aquí un detalle antes de ejecutar nuestro código es que también tenemos que modificar en la
función scan F.
También tiene que coincidir con el tipo de dato que queremos leer.
En este caso queremos leer una cadena.
Bien, con esto entonces ya estamos leyendo una cadena y vamos a mandar a imprimir una cadena.
Una vez que ya coincide en nuestro código, vamos a ejecutar y nos pide proporciona un nombre.
Por ejemplo, proporcionamos el nombre de Juan Espacio Lara.
Vamos a dar Enter y podemos observar que aparentemente funciona correctamente en nuestro código, pero
solamente se leyó 1/1 de nuestro texto.
Y una vez que se encuentra el carácter de espacio, entonces se corta nuestra cadena, se corta la lectura
y ya no se captura la de más información.
Así que la función de escanee por default.
Deja de leer la información hasta que encuentra un espacio en blanco.
Obviamente esto podría no ser deseado, así que para que podamos leer toda nuestra cadena de manera
similar a cuando modificamos el formato, cuando mandamos a imprimir un tipo flotante, también podemos
modificar este formato para que lea una cadena completa.
Para ello, entre corchetes, entre el carácter de porcentaje y la s.
Vamos a poner que.
Corchetes y vamos a indicar que se lea la línea completa.
Para ello vamos a hacer lo siguiente Utilizamos lo que se conoce como el acento circunflejo, así que
especificamos este carácter.
Si no encuentran este carácter en su teclado, simplemente descargan este código.
Lo pueden copiar y pegar en su código.
Pero se conoce como el acento circunflejo.
Posteriormente, entre comillas, indicamos que se siga leyendo la información hasta que se encuentre
un salto de línea.
Hasta que encontramos el salto de línea es que se va a acortar la lectura de esta información.
Por lo tanto se va a leer la línea completa.
Con este pequeño cambio vamos a volver a ejecutar.
Proporcionamos Juan, Laura y entonces podemos observar que ya se manda a imprimir por completo nuestro
nombre y también en memoria.
Entonces ya se captura toda esta información de los índices de 0 a 8 se capturó el nombre de Juan Espacio,
Laura y además al final tenemos el carácter de fin de cadena.
Si necesitáramos más caracteres, eso lo tendríamos que hacer más grande.
El tamaño de la cadena tendría que ser más grande para que podamos capturar un nombre más largo.
De lo contrario, ya hemos visto que podemos tener problemas para capturar esta información.
Bien, vamos a detener hasta aquí.
Y en el siguiente vídeo vamos a ver algunas otras formas para leer también cadenas utilizando otras
funciones.
Eso es todo por este vídeo.
Pónganlo en práctica y nos vemos en la siguiente lección.
Saludos.