Está en la página 1de 3

Cadenas de caracteres

hacer uso de una librera estndar especialmente escrita para manipulacion de cadenas de caracteres, la librera <string.h>. tenemos los siguientes ejemplos:
1. char nombre[] = "Oscar"; 2. char nombre2[] = { 'O', 's', 'c', 'a', 'r', '\0' };

En el ejemplo 1 se est declarando la variable nombre como una cadena de caracteres y cuyo contenido inicial es "Oscar". En el ejemplo 2 se est declarando la variable nombre2 como una cadena de caracteres y cuyo contenido inicial es { 'O', 's', 'c', 'a', 'r', '\0' };.

En ambos casos el resultado es el mismo, es decir, al final se obtiene la misma cadena, pero usted debe poner atencin al hecho de que toda cadena de caracteres en C, C++ debe terminar con el caracter NULL, que normalmente es igual a cero y se puede escribir como '\0'. Ahora bien, cuando usted usa la sintaxis mostrada en el ejemplo 1 no tiene que preocuparse por agregar el caracter NULL.

[editar] La biblioteca string


accede por medio de la directiva #include <string.h>. 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 caracter de terminacin null. Ejemplo:
char *nombre = "Oscar E. Palacios"; char copia[80]; strcpy(copia, nombre);

cout << copia << endl;

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 caracter 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 caracter ( 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[] = "Oscar E. Palacios"; char *p; p = strchr(nombre, 'E'); if (p) {

cout << "nombre contiene a E" << endl; cout << "indice = " << (p - nombre) << endl; } else cout << "E no est en nombre" << endl;

strrchr(): Buscar caracter ( 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[] = "Oscar E. Palacios"; char *p; p = strrchr(nombre, 'E'); if (p) { cout << "nombre contiene a E" << endl; cout << "indice = " << (p - nombre) << endl; } else cout << "E no est en nombre" << endl;

Todo depende de la manera como ests capturando la cadena, o como la ests almacenando. Normalmente una cadena de C temina con el caracter nulo (ASCII 0), as que el espacio no debera cortarla (el espacio es el ASCII 32). Por otra parte, sizeof s forma parte del ANSI C, no es exclusiva de C++. Y tambin existen funciones como strlen, strcat, strcpy, etc., o la misma isspace que te mencionaban antes, que te dan bastante flexibilidad en el uso de cadenas.