Carácter
Un carácter es el átomo de los programas de computadora, un carácter es un símbolo que puede ser una letra del alfabeto o un carácter especial.
Un carácter ocupa 8 bits en memoria, y existen 256 caracteres diferentes. Cada carácter se lo codifica en un número entero, es decir, que cada carácter tiene su correspondiente representación entera, el código ASCII es precisamente esto. Por ejemplo el carácter ‘a’ tiene como código ASCII el entero 97. Para ver todos códigos ASCII véase el anexo A.
Cadenas
Una cadena o cadena de caracteres nos es más que una serie de caracteres manipulados como una unidad. Si asemejamos una cadena al lenguaje castellano sería como una palabra, que es un conjunto de sílabas y vocales en donde cada una de estas viene a ser una carácter.
Visto desde otro punto vendría a ser un arreglo de caracteres.
Una cadena puede contener cualquier carácter, puede almacenar un nombre propio una dirección, es decir, lo que nosotros precisemos.
Declaración
Una cadena se la define de la siguiente manera
char cadena[20];
La cadena anterior puede contener un máximo de 20 caracteres.
Inicialización
Se puede inicializar una cadena de la siguiente manera:
cadena = "Hola" ;
Cualquier valor que se le asigne a una cadena va entre comillas dobles " ", como en el ejemplo anterior "Hola" esta entre comillas dobles.
Una cadena siempre finaliza con el carácter de fin de cadena ‘\0’, que siempre se añade al final automáticamente, en el ejemplo anterior se añade al final de “Hola” el carácter de fin de cadena.
También podemos considerar a una cadena como un arreglo de caracteres, y se puede inicializar de la siguiente manera:
cadena = { ‘H’, ‘o’, ‘l’, ‘a’ } ;
El arreglo de caracteres se vería de esta forma:
‘H’ |
‘o’ |
‘l’ |
‘a’ |
‘\0’ |
0 |
1 |
2 |
3 |
4 |
Nótese que en la posición 4 se aumenta el fin de cadena
Ejemplo 9.1
Se desea tener un programa que sea amable con el usuario, el programa deberá conocer el nombre del usuario y responderle con un mensaje amigable.
#include <iostream.h> |
En el ejemplo anterior el mensaje "¿Cuál es tu nombre?" es una cadena pues esta entre comillas. También es una cadena la variable nombre que recibirá un valor desde teclado.
Operaciones con Cadenas
Existen muchas operaciones que se pueden realizar utilizando cadenas, la mayoría de la operación que podemos requerir se encuentran ya a nuestra disposición dentro de la librería string.h
Longitud
La longitud de una cadena la podemos conocer utilizando la función strlen.
Sintaxis
strlen( cadena ) ;
Ejemplo 9.2
| #include <iostream.h>#include <string.h> void main() { char nombre[30]; int tamano; cout<<"¿Cuál es tu nombre?\n"; cin>>nombre; tamano = strlen( nombre ); cout<<"Tu nombre tiene "<<tamano<<”letras”; } |
Comparación
Para saber si dos cadenas son exactamente iguales utilizamos la función strcmp.
Sintaxis
strcmp ( cadena1, cadena2 );
Esta función devuelve un valor de acuerdo al resultado de la comparación.
Devuelve:
0 si la dos cadenas son exactamente iguales
Mayor a 0 si la cadena1 es mayor a la cadena2
Menor a 0 si la cadena1 es menor que la cadena2
Ejemplo 9.3
#include <iostream.h> void main() cout<<"La contraseña no coincide"; } |
Copia
Podemos reflejar todo el contenido de una cadena a otra, en otras palabras la copiamos tal cual, para esto utilizamos la función strcpy.
Sintaxis
strcpy( cadenaDestino, cadenaOrigen );
Todo el contenido de la cadenaOrigen se copia a la cadenaDestino, si esta última tuviera algún valor este se borra.
Ejemplo 9.4
#include <iostream.h> void main() |
Concatenación
Podemos juntar o concatenar dos cadenas una a continuación de la otra. Utilizamos la función strcat.
Sintaxis
strcat( cadenaDestino, cadenaOrigen );
Todo el contenido de la cadenaOrigen se añade a continuación de la cadenaDestino, si esta última contiene algo entonces al final contendrá lo que contenía más el contenido de la cadenaOrigen.
Ejemplo 9.5
#include <iostream.h> void main() |
Ejemplo 9.6
Escriba una función que permita conocer la longitud de una cadena. La función deberá llamarse longitud
#include <iostream.h> int longitud(char cadena[]) void main() |