Cadena De Caracteres
Enviado por alekziz • 27 de Junio de 2014 • 1.317 Palabras (6 Páginas) • 235 Visitas
Cadenas de caracteres[editar]
En C, C++ las cadenas de caracteres no son más que arrays de caracteres, salvo que a este tipo de arrays el compilador les da un tratamiento especial. Usted puede manipular las cadenas de caracteres de la misma manera en que manipula cualquier otro tipo de array, sin embargo, es preferible hacer uso de una librería estándar especialmente escrita para manipulacion de cadenas de caracteres, me refiero a la librería<string.h> y que viene incluida con todo compilador de C, C++.
Para comenzar y antes de ver algunas de las funciones de la mencionada librería, 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 atención al hecho de que toda cadena de caracteres en C, C++ debe terminar con el carácter 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, ya que esto lo hace el compilador automáticamente.
La biblioteca string[editar]
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 función 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 función termina hasta haber encontrado en src el carácter de terminación 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 función termina hasta haber encontrado en src el carácter de terminación null.
Ejemplo:
char nombre[] = "Oscar E.";
char copia[80] = " Palacios";
strcat(copia, nombre);
cout << copia << endl;
strlwr(): Convertir a minúsculas.
Sintaxis: char *strlwr(char *dest);
Comentarios: strlwr convierte todos los caracteres alfabéticos ( 'A' .. 'Z' ) en dest a sus correspondientes caracteres alfabéticos ( 'a' .. 'z' ).
Ejemplo:
char nombre[] = "Oscar E. Palacios";
strlwr(nombre);
cout << nombre << endl;
strupr(): Convertir a mayúsculas.
Sintaxis: char *strupr(char *dest);
Comentarios: strupr convierte todos los caracteres alfabéticos ( 'a' .. 'z' ) en dest a sus correspondientes caracteres alfabéticos ( 'A' .. 'Z' ).
________________________________________
strchr(): Buscar carácter ( 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 operación 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 carácter ( 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 operación es exitosa strchr regresa un puntero hacia la última ocurrencia de
...