Hola y bienvenidos.
Vamos a ver a continuación un ejemplo para combinar cadenas y el uso de funciones.
Están listas?
Vamos.
Bien.
De manera similar a lo que ya vimos con el manejo de arreglos.
Este arreglo que hemos definido es de tipo entero, pero recordemos que también para manejar cadenas,
entonces vamos a definir un arreglo pero de tipo char.
Así que vamos a hacer algunos cambios en nuestro código para mandar a imprimir un mensaje que le vamos
a solicitar al usuario y una vez que proporcione el usuario el mensaje que quiere mandar a imprimir,
vamos a pasar este arreglo de caracteres a nuestra función para mandar a imprimir el mensaje.
Pero desde la función bien definimos una cadena.
En este caso vamos a reutilizar varias cosas, pero el tipo de dato que vamos a utilizar ahora es de
tipo char, ya que vamos a almacenar únicamente cadenas de caracteres.
Sin embargo, no lo vamos a inicializar, ya que el valor le va a proporcionar directamente el usuario.
Así que vamos a indicar que este arreglo va almacenar cinco caracteres.
Así es como vamos en primer lugar a definir nuestro arreglo y posteriormente vamos a asignar el valor
de manera dinámica.
Así que le pedimos al usuario.
Proporciona.
El mensaje a mostrar.
Damos un salto de línea al final para que el mensaje se muestre en una nueva línea.
Posteriormente.
Utilizando la función de gets.
Leemos la línea y lo almacenamos en la variable.
En ese caso de argumento, esta es la cadena que estamos definiendo.
Voy a cambiar el nombre de esta variable.
Le voy a llamar simplemente cadena.
Bien.
Así que con este código ya estamos leyendo la cadena del usuario que está proporcionando y posteriormente
lo que vamos a hacer es definir una función para mandar a imprimir el mensaje, pero desde la función.
Así que voy a quitar este código y la función que vamos a crear se va a llamar Imprimir mensaje y el
mensaje que vamos a enviar a la función es la cadena que ha proporcionado el usuario.
Así que con esto ya estamos definiendo todo nuestro código del método principal.
Ahora vamos a modificar nuestra función.
La función no va a regresar nada, se va a llamar imprimir mensaje.
Pero recordemos que ahora el apuntador debe de ser del mismo tipo de la variable a la cual va a apuntar.
Así que en este caso este apuntador va a apuntar a elementos de tipo char.
Recordemos que en este caso, al ser una cadena, vamos a recibir la dirección de memoria del primer
carácter de nuestro arreglo, ya que es un arreglo, pero a su vez una cadena de caracteres.
Por lo tanto, ese apuntador solamente va a apuntar al primer carácter de nuestro arreglo.
Pero por ello tiene que ser de tipo char.
Bien, básicamente con esto ya vamos a recibir la referencia de memoria y con esta referencia ya podemos
mandar a imprimir el mensaje que vamos a recibir.
Así que imprimimos.
El mensaje.
Van a mandar a imprimir una cadena, simplemente mandamos a imprimirlo.
Ya sabemos que utilizamos porcentaje ese, ya que es un arreglo de caracteres y posteriormente proporcionamos
la variable que contiene nuestra cadena.
En este caso recordemos que este es nuestro apuntador.
Ahora, en este caso voy a renombrar esta variable para que se llame mensaje, para que sea un poco
más explícito que este apuntador contiene el mensaje que queremos imprimir.
Bien, básicamente con esto ya tenemos todo nuestro código, vamos a ejecutar y entonces tenemos proporciona
el mensaje a mostrar.
Saludos.
Damos enter y entonces observamos que se manda a imprimir el mensaje dos puntos y posteriormente el
mensaje que ha proporcionado el usuario la cadena de saludos.
Si volvemos a ejecutar, proporciona el mensaje a mostrar por ejemplo mi nombre Osvaldo Acosta.
Doy enter y sin ningún problema.
También se manda a imprimir el mensaje, incluso aunque tenga espacios en blanco, ya que recordemos
que la función GET precisamente permite leer líneas completas de la consola.
Así que con esto ya estamos mandando a imprimir el mensaje que está proporcionando el usuario.
Sin embargo, aquí podemos utilizar dos Sintaxis Esta es la primera sintaxis de nuestra función, pero
también podríamos utilizar la siguiente sintaxis.
Recordemos que a final de cuentas vamos a recibir la referencia de un arreglo, así que vamos a definir
un arreglo.
Esta sería la sintaxis.
En lugar de utilizar un apuntador, estamos definiendo que vamos a recibir una referencia de un arreglo,
así que también podemos utilizar esta sintaxis, aunque es más flexible y sobre todo más poderoso el
uso de apuntadores.
Pero si manejamos únicamente cadenas de caracteres, esa también puede ser otra opción.
Aunque la más común, como hemos comentado, es el uso de apuntadores, ya que esto puede apuntar no
solamente a cadenas de caracteres, sino a cualquier tipo de dirección de memoria.
Bien, vamos a ejecutar para comprobar.
Proporciona el mensaje a mostrar.
Proporcionamos la cadena de audios, damos enter y observamos que también sigue funcionando nuestro
programa sin ningún problema.
Así que les vamos a dejar las dos sintaxis, pero recordando que la sintaxis más común es el uso de
apuntadores, así que por ello dejo activada la línea donde estamos utilizando la variable de tipo apuntador
y si ejecutamos paso a paso se ejecuta nuestro método principal.
En la línea 11 se crea nuestra variable de cadena, la cual contiene cinco elementos.
Se está reservando espacio de memoria para cinco elementos y podemos saber que todos los elementos son
de tipo char.
Posteriormente pedimos proporcionar el mensaje y por ejemplo proporcionamos la cadena de hola.
Una vez que leemos el mensaje, entonces cada uno de estos caracteres se almacena en cada uno de los
índices de nuestro arreglo, incluyendo el carácter de fin de cadena que se almacena en el índice cuatro.
Bien, así que con esto ya tenemos nuestra variable de cadena en memoria y posteriormente se manda llamar
a la función de imprimir mensaje.
Así que básicamente aquí lo que vamos a hacer es pasar la referencia de nuestro arreglo.
Lo vamos a pasar a nuestra función de imprimir mensaje, así que para ello se crea lo siguiente en memoria
se van a llamar nuestra función de imprimir mensaje y se crea nuestra variable apuntador.
Podemos ver en este caso que el tipo de dato tiene que ser exactamente igual a cada uno de los elementos
que vamos a apuntar.
Por ello, esta variable de mensaje es un apuntador a elementos de tipo carácter, ya que vamos a almacenar
la referencia, en este caso del primer elemento de nuestro arreglo.
Vamos a comprobarlo.
Si se inicializa nuestra variable de mensaje, podemos ver que tenemos la referencia únicamente del
primer elemento de nuestro arreglo, pero con eso es suficiente para inicializar nuestra variable de
apuntador.
Y entonces en la línea seis, al mandar imprimir la variable de mensaje, lo que sucede es que como
es una cadena, entonces se manda a imprimir toda la cadena, así que se ejecutamos.
Entonces se muestra en la cadena de Hola, ya que con esta sintaxis, al ser un apuntador estamos accediendo
al primer elemento de nuestro arreglo, pero también al ser una cadena, entonces se manda a imprimir
toda la cadena hasta que encontremos el carácter de fin de cadena.
Por ello es que en este caso se imprime la cadena completa de Hola y de esta manera podemos observar
que ya no hay necesidad de recorrer cada uno de los índices.
Simplemente al ser una cadena a la que estamos apuntando y se imprime hasta el carácter de fin de cadena.
Básicamente este es el ejemplo.
Podemos observar que es el mismo uso de paso por referencia, pero ya lo estamos combinando ahora con
un arreglo de caracteres, es decir, pasando a una cadena.
Bien, pongan en práctica lo que hemos visto y continuamos en la siguiente lección.
Saludos.