Tareas
de caracteres
Las cadenas de caracteres (también llamadas cadenas o strings) son un tipo particular de vectores, son de hecho vectores de char, con la particularidad quetienen una marca de fin (el caracter '\0'), además el
lenguaje nos permite escribirlas como texto dentro de
comillas dobles. Veamos unos ejemplos de su
declaración:char cadena_hola[]="Hola"; charotro_hola[]= {'H','o','l','a','\0'}; // Igual al anteriorchar vector[]= {'H','o','l','a'}; /* Un vector de 4 elementos, con los elementos 'H','o','l' y 'a' */ char espacio_cadena [1024]="Una cadena enC"; char cadena_vacia[]=""; Cómo vimos anteriormente al declarar un vector se
define la cantidad de elementos que puede contener,
en el caso de las cadenas se debe tener en cuenta el espacioadicional necesario para el \0. Viendo el ejemplo, tanto cadena_hola y otro_hola tienen un largo 5 y cadena_vacia tiene un largo de 1. También vimos anteriormente que al usar vectores
debemos tener en cuentasu largo, y así es que el
largo o cantidad de elemento lo necesitamos en todas
las funciones que definimos usando vectores y lo
recibimos como un parámetro más en estas, en el
caso de las cadenasal tener una marca de fin podemos prescindir del largo y procesar una cadenas
hasta llegar a la marca de fin. Por ejemplo, la siguiente función calcula el largo de
una cadena: /* devuelve lacantidad de
caracteres en cadena sin contar el
'\0' */ int largo_cadena(char cadena[]) { int largo=0 while (cadena[largo]!='\0') largo++;return largo; } Se debe tener en cuenta que el largo de una cadenay
el largo del vector con la que se representa son distintos, tanto por como largo_cadena() cuenta el largo de la cadena, como por espacio_cadena del ejemplo anterior. Algo bastante usual esnecesitar unir dos cadenas,
veamos un ejemplo: bool unir_cadenas(char destino[], char origen[], int largo) { int largo_origen = largo_cadena(origen); int largo_destino = largo_cadena(destino); if (...
Regístrate para leer el documento completo.