Está en la página 1de 5

Funciones para manejos de cadenas en C++

Una cadena (tambin llamada constante de cadena o literal de cadena) es un tipo de dato compuesto, un array de caracteres (char), terminado por un carcter nulo ( \0 ), NULL. Un ejemplo es ABC. Cuando la cadena aparece dentro de un programa se ver como si almacenaran cuatro elementos: A, B, C y \0. En consecuencia, se considerara que la cadena ABC es un array de cuatro elementos tipo char. El valor real de esta cadena es la direccin de su primer carcter y su tipo es un puntero a char. Aplicando el operador * a un puntero a char se obtiene el carcter que forma su contenido; es posible tambin utilizar aritmtica de direcciones con cadenas:

*ABC es igual a A *(ABC + 1) es igual a B *(ABC + 2) es igual a C *(ABC + 3) es igual a \0

Ejemplo: 1. Char cad []= Lupiana; cad tiene ocho caracteres; L, u, p, i, a, n, a y \0

Las cadenas se declaran como los restantes tipos de arrays. El operador postfijo [] contiene el tamao mximo del objeto. El tipo base, naturalmente, es char, o bien unsigned char. El tipo unsigned char puede ser de inters en aquellos casos en que los caracteres especiales presentes puedan tener el bit de orden alto activado. Si el carcter se considera con signo, el bit de mayor peso (orden alto) se interpreta como bit de signo y se puede propagar a la posicin de mayor orden (peso) del nuevo tipo. Todos los tipos de arrays requieren de una inicializacin que consiste en una lista de valores separados por comas y encerrados entre llaves.

Las cadenas texto y textodemo pueden contener 80 y 254 caracteres respectivamente mas el carcter nulo. La tercera cadena, cadenatest, se declara con una especificacin de tipo incompleta y se completa solo con el inicializador. Dado que en el literal hay 36 caracteres y el compilador aade el carcter \0, un total de 37 caracteres se asignaran a cadenatest

Lectura de Cadenas

La lectura de datos se realiza con la funcin scanf(), cuando se aplica a datos cadena el cdigo de formato %s. La funcin da por terminada la cadena cuando encuentra un espacio (un blanco) o fin de lnea. Esto puede producir anomalas al no poder captar cadenas con blancos entre caracteres.

Funcin getchar()

La funcin getchar() se utiliza para leer carcter a carcter. La llamada a getchar() devuelve el carcter siguiente del flujo de entrada stdin. En caso de error, o de encontrar el fin de archivo, devuelve EOF (macro definida en stdio.h).

Funcin putchar()

La funcin opuesta de getchar() es putchar(). La funcin putchar() se utiliza para escribir en la salida (stdout) carcter a carcter. El carcter que se escribe es el transmitido como argumento. Esta funcin (realmente es una macro definida en stdio.h) tiene como prototipo: Int putchar (int ch);

Inversin de cadenas

La biblioteca STRING.H incluye la funcin strrev() que sirve para invertir los caracteres de una cadena. Su prototipo es: char *strrev(char *s); strrev() invierte el orden de los caracteres de la cadena especificada en el argumento s; devuelve un puntero a la cadena resultante.

Conversin de cadenas

La biblioteca STRING.H de la mayora de los compiladores C suele incluir funciones para convertir los caracteres de una cadena a letras maysculas y minsculas respectivamente. Estas funciones se llaman strlwr() y strupr() en compiladores de AT&T y Borland, mientras que en Microsoft se denominan _strlwr() y _strupr().

Conversin de cadenas a nmeros

Es muy frecuente tener que convertir nmeros almacenados en cadenas de caracteres a tipos de datos numricos. C proporciona las funciones atoi(), atof() y atol(), que realizan estas conversiones. Estas tres funciones se incluyen en la biblioteca STDLIB.H, por lo que ha de incluir en su programa la directiva: #include <stdlib.h>.

Bsqueda de caracteres y cadenas

La biblioteca STRING.H contiene un numero de funciones que permiten localizar caracteres en cadenas y subcadenas en cadenas. Funciones de bsqueda de caracteres: strchr, strrchr y strspn Funciones de bsqueda de cadenas: strstr y strtok

En conclusin, una cadena de caracteres es un tipo de array cuyos elementos son caracteres, por lo que tambin se les denomina vectores caracteres. Acaba con el carcter nulo \0 que marca el final de la cadena La estructura, tambin llamada registro, estar compuesta de un conjunto de variables, tambin llamados campos, que podrn ser de diferente tipo y que indicaran las caractersticas de un elemento de la misma. Las estructuras permitirn un manejo ms cmodo de una agrupacin de informacin, ya que se podr hacer referencia a todas esas variables o campos con nico identificador. Estos campos se almacenaran de forma consecutiva en memora, por lo que la longitud de una estructura ser la suma de la longitud de cada tipo de dato de los campos que la componen.

Las cadenas en C son arrayas de caracteres que terminan con el carcter nulo. La entrada de cadenas requiere el uso de la funcin gets(). La biblioteca STRING.H contiene numerosas funciones de manipulacin de cadenas; entre ellas, se destacan las funciones que soportan asignacin, concatenacin, conversin, inversin y bsqueda. C soporta dos mtodos de asignacin de cadenas. El primer mtodo, asigna una cadena a otra, cuando se declara esta ltima. El segundo mtodo, utiliza la funcin strcpy(), que puede asignar una cadena a otra en cualquier etapa del programa. La funcin strlen() devuelve la longitud de una cadena. Las funciones strcat() y strncat() permiten concatenar dos cadenas. La funcin strncat() permite especificar el nmero de caracteres a concatenar.

Las funciones strcmp(), stricmp(), strncmp() y strnicmp() permiten realizar diversos tipos de comparaciones. Las funciones strcmp() y stricmp() realizan comparacin de dos cadenas, sin tener en cuenta maysculas y minsculas. La funcin strncmp() es una variante de la funcin strcmp(), que utiliza un numero especificado de caracteres al comparar las cadenas. La funcin strnicmp() es una versin de la funcin strncmp() que realiza una versin con independencia del tamao de las letras. Las funciones strlwr() y strupr() convierte los caracteres de una cadena en letras minsculas y maysculas respectivamente. La funcin strrev() invierte el orden de caracteres en una cadena. Las funciones strchr(), strspn(), strcspn() y strpbrk() permiten buscar caracteres y patrones de caracteres en cadenas. La funcin strstr() busca una cadena en otra cadena. La funcin strtok() rompe (divide) una cadena en cadenas ms pequeas (subcadenas) que se separan por caracteres separadores especificados.

Hernndez Blanco Erivan Massiel

Ing. Electronica 3 Sem

Bibliografa.

Programacion en C. Metodologa, algoritmos y estructura de datos.

- "Programacin orientada a objetos con C++" Fco. Javier Ceballos Editorial ra-ma 677 pginas