Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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[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.
char *nombre = "Oscar E. Palacios"; char strcpy(copia, nombre); cout << copia << endl;
copia[80];
char nombre[] = "Oscar E."; char copia[80] = " Palacios"; strcat(copia, nombre); cout << copia << endl;
char nombre[] = "Oscar E. Palacios"; strlwr(nombre); cout << nombre << endl;
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;
char Saludo[5]; Saludo[0] = 'H'; Saludo[1] = 'O'; Saludo[2] = 'L'; Saludo[3] = 'A'; Saludo[4] = 0;
O bien: char Saludo[5] = "HOLA";