Está en la página 1de 11

Una cadena en C++ es un conjunto de caracteres, o valores de tipo char, terminados con el carcter nulo, es decir el valor numrico

0. Internamente, en el ordenador, se almacenan en posiciones consecutivas de memoria. Este tipo de estructuras recibe un tratamiento muy especial, ya que es de gran utilidad y su uso es continuo.

La manera de definir una cadena es la siguiente:


char <identificador> [<longitud mxima>];

Cuando se declara una cadena hay que tener en cuenta que tendremos que reservar una posicin para almacenar el carcter nulo terminador, de modo que si queremos almacenar la cadena "HOLA", tendremos que declarar la cadena como: char Saludo[5]; Las cuatro primeras posiciones se usan para almacenar los caracteres "HOLA" y la posicin extra, para el carcter nulo.

Tambin nos ser posible hacer referencia a cada uno de los caracteres individuales que componen la cadena, simplemente indicando la posicin. Por ejemplo el tercer carcter de nuestra cadena de ejemplo ser la 'L', podemos hacer referencia a l como Saludo[2]. Es muy importante tener presente que en C++, los ndices tomarn valores empezando siempre en cero, as el primer carcter de nuestra cadena sera Saludo[0], que es la letra 'H'. En un programa C++, una cadena puede almacenar informaciones en forma de texto, como nombres de personas, mensajes de error, nmeros de telfono, etc. La asignacin directa slo est permitida cuando se hace junto con la declaracin. El siguiente ejemplo producir un error en el compilador, ya que una cadena definida de este modo se considera una constante, como veremos en el captulo de "arrays" o arreglos.

char Saludo[5]; Saludo = "HOLA";

La manera correcta de asignar una cadena es:

char Saludo[5]; Saludo[0] = 'H'; Saludo[1] = 'O'; Saludo[2] = 'L'; Saludo[3] = 'A'; Saludo[4] = 0;
O bien: char Saludo[5] = "HOLA";

La biblioteca string
Los compiladores de C, C++ dan soporte a la biblioteca de funciones <string.h>, a la que accede por medio de la directiva #include <string.h>. No veremos en detalle todas las funciones contenidas en dicha biblioteca, y nos limitaremos a mostrar algunos ejemplos de ciertas funciones importantes.

strlen(): Obtener longitud de cadenas


Sintaxis: size_t strlen(const char *s); Comentarios: La funcin strlen() devuelve la longitud de la cadena s. Ejemplo:

char *nombre = "Oscar E. Palacios"; cout << strlen(nombre) << endl;

strcpy(): Copiar cadenas


Sintaxis: char *stpcpy(char *dest, const char *src); Comentarios: stpcpy copia la cadena src hacia dest, la funcin termina hasta haber encontrado en src el carcter de terminacin null. Ejemplo:

char *nombre = "Oscar E. Palacios"; char strcpy(copia, nombre); cout << copia << endl;

copia[80];

strcat(): Concatenar cadenas


Sintaxis: char *strcat(char *dest, const char *src); Comentarios: strcat agrega la cadena src a dest, la funcin termina hasta haber encontrado en src el carcter de terminacin null. Ejemplo:

char nombre[] = "Oscar E."; char copia[80] = " Palacios"; strcat(copia, nombre); cout << copia << endl;

strlwr(): Convertir a minsculas.


Sintaxis: char *strlwr(char *dest); Comentarios: strlwr convierte todos los caracteres alfabticos ( 'A' .. 'Z' ) en dest a sus correspondientes caracteres alfabticos ( 'a' .. 'z' ). Ejemplo:

char nombre[] = "Oscar E. Palacios"; strlwr(nombre); cout << nombre << endl;

strupr(): Convertir a maysculas.


Sintaxis: char *strupr(char *dest); Comentarios: strupr convierte todos los caracteres alfabticos ( 'a' .. 'z' ) en dest a sus correspondientes caracteres alfabticos ( 'A' .. 'Z' ).

strchr(): Buscar carcter ( hacia adelante )


Sintaxis: char *strchr(char *s, int c); Comentarios: strchr busca en s el caracter c. La busqueda se lleva a cabo desde el inicio hasta el final de s. Regreso: si la operacin es exitosa strchr regresa un puntero hacia la primera ocurrencia de c en s, en caso contrario strchr regresa null. Ejemplo:

char nombre[] = Compu for ever";

strrchr(): Buscar carcter ( hacia atras )


Sintaxis: char *strrchr(char *s, int c); Comentarios: strchr busca en s el caracter c. La busqueda se lleva a cabo desde el final hasta el inicio de s. Regreso: si la operacin es exitosa strchr regresa un puntero hacia la ltima ocurrencia de c en s, en caso contrario strchr regresa null. Ejemplo:

char nombre[] = compu for ever

strstr(): Buscar subcadena Sintaxis: char *strstr(const char *s1, char *s2); Comentarios: strstr busca en s1 la subcadena s2. La bsqueda se lleva a cabo desde el inicio hasta el final de s1. Regreso: si la operacin es exitosa strstr regresa un puntero hacia la primera ocurrencia de s2 en s1, en caso contrario strstr regresa null. Ejemplo: char s[] = "Un barco de tristeza"; char *p; p = strstr(s, "barco"); if (p) { cout << "barco est en s" << endl; cout << "indice = " << (p - s) << endl; } else cout << "barco no est en s" << endl;

La manera correcta de asignar una cadena es:

char Saludo[5]; Saludo[0] = 'H'; Saludo[1] = 'O'; Saludo[2] = 'L'; Saludo[3] = 'A'; Saludo[4] = 0;
O bien: char Saludo[5] = "HOLA";

También podría gustarte