Bienvenidos sean a este post, ya hemos visto como manejar los caracteres ahora pasaremos a lo mas divertido.
Si bien manejar caracteres en las distintas formas que vimos puede ser entretenido, vamos a mejorar la experiencia dado que en nuestros codigos usualmente debemos manejar palabras u oraciones y para ello introduciremos a las cadenas o strings.
Basicamente un string es un array de caracteres pero con una propiedad especial, esta propiedad es el caracter NUL (con el valor de 0) que ira al final despues del ultimo caracter de la cadena (string) para indicar su final, esto significa que nuestra cadena sera un array de caracteres especialmente formateado con una terminacion extra del caracter NUL, este es denominado como SENTINEL (Centinela), este sera el encargado de asegunrarnos que todos los elementos de la cadena fueron encontrados siendo esta la razon principal de porque no debemos olvidarlo, despues tendremos una importante diferencia para pasar un caracter o una cadena:
- ‘x’, las comillas simples son para pasar un caracter
- «Hola», las comillas dobles son para pasar cadenas
Si bien en ejemplos de posts anteriores cuando hemos trabajado con caracteres hemos utilizado las comillas simples y para literales las comillas dobles, esto es asi porque la comilla doble agrega automaticamente el caracter NUL al final de la cadena, pero como mencionamos estos al ser un array de caracteres el tamaño del array sera mayor a la cantidad de elementos, si tomamos por ejemplo la palabra Hola anterior, el array sera de cinco posiciones dado que tendra que almacenar cada una de las letras mas el caracter NUL, recuerden esto a la hora de trabajar con las cadenas, por ultimo sin este caracter al final esto sera un array de caracteres o una cadena no valida, lo cual nos puede generar inconvenientes a la hora de trabajar con esta.
Una de las fortalezas que posee las cadenas es su simpleza, esto es gracias a que se crean mediante mecanismos existentes (caracteres, arrays y apuntadores), podemos decir que todo lo visto en los arrays se aplica a las cadenas, por otro lado una de las grandes debilidades de las cadenas es la aplicacion del centinela, el caracter NUL, dado que a veces se aplica automaticamente y otras veces no, generando lo que hablamos anteriormente, otro tema es el tamaño de los arrays porque no podemos definirlo dinamicamente y esto puede generar un inconveniente a la hora de almacenarlo la cadena en una variable, con todo esto comentado pasemos a ver como declararlos:
char nombre_cdn[tamaño];
Esta es la mejor forma de definirlo, donde le asignaremos un nombre y el tamaño del array, recuerden siempre agregar una posicion mas para el caracter terminador, veamos otra forma:
char nombre_cdb[];
Esta es una forma valida pero no es una forma util porque asignara un espacio en memoria pero no servira hasta que la inicialicemos, por ultimo tenemos esta forma de definirlo:
char * nombre_apuntador;
Al igual que el caso anterior es valido pero no es util porque si bien asignara una direccion de memoria no podremo utilizarla hasta que la iniciemos, ahora si con todo esto comentado vamos a crear un ejemplo simple para verlo en accion, para ello haremos un nuevo archivo que llamaremos ejemplo22.c y le agregaremos el siguiente codigo:
ejemplo22.c
#include <stdio.h>
int main()
{
char texto1[5] = "Hola";
char texto2[] = {'M','u','n','d','o','\0'};
printf("%s, %s!\n", texto1, texto2);
return 0;
}
Este es un ejemplo para verlo en accion, primero definiremos una cadena por medio de la doble comilla, observen que debimos informar el total de letras mas el caracter terminador o centinela, en el segundo caso no establecemos el tamaño pero al igual que en los array el tamaño se define con los elementos informados, pero observen que al final debimos pasar al caracter NUL para indicarle que es una cadena, por ultimo mostraremos ambos textos, compilemos y veamos como es su salida:
tinchicus@dbn001vrt:~/lenguajes/C$ ./prog/ejemplo22
Hola, Mundo!
tinchicus@dbn001vrt:~/lenguajes/C$
Como pueden ver pudimos mostrar textos que no son literales como vinimos haciendo hasta ahora, mas adelante veremos como aplicarlo para distintos temas.
En resumen, hoy hemos visto string, que son, como se componen, como podemos definirlos, como podemos iniciarlas, despues por medio de un pequeño ejemplo hemos visto dos formas de como definirlas y como mostrarlas, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
