CADENA DE CARACTERES
Una cadena de caracteres (strings) no es ms que un array de
caracteres.
Las cadenas nos permiten la manipulacin de textos.
Declaracin
Las cadenas de texto se declaran indicando el tamao
mximo de la cadena.
char <nombre_de_cadena> [ tamao_mximo ];
Ojo: El tamao de la cadena ha de incluir el carcter nulo \0.
Ejemplo:
char cabecera[10];
char nombre[8];
Si se desea declarar una cadena que almacene el texto
febrero se puede hacer:
f e b r e r o \O
1 2 3 4 5 6 7 8
char mes[10];
char mes[8];
char mes[7]; INCORRECTO
Ejemplo 1:
Determinar el tamao de la cadena leda.
Funciones Asociadas al Manejo de cadenas de caracteres
Se encuentra en la biblioteca <string.h>
strcpy: Se utiliza para copiar una cadena de caracteres (fuente) en el
lugar que ocupaba otra (destino).
Ejm: cad1=uno
cad2=dos
strcpy(cad1,cad2);
cad1=dos
strcat: Copia una cadena (fuente) en otra (destino) concatenando en
una sola.
Ejm: strcat(cad1,cad2);
cad1=unodos
strlen: Esta funcin devuelve el total (entero) de caracteres que
conforman una cadena (excluyendo el caracter nulo \0).
Ejm: N=strlen(cad1);
N=3
strcmp: Compara dos cadenas. La funcin strcmp recibe
dos cadenas, cad1 y cad2, devuelve un entero.
El entero que resulta de efectuar la llamada
strcmp(cad1, cad2) codifica el resultado de la
comparacin:
Comparando Valor
cad1<cad2 <0
cad1>cad2 >0
cad1=cad2 0
Arrays de cadenas
Para almacenar vrios datos de tipo cadena en un array, podemos hacerlo de
varias formas:
1: Usando la instruccin typedef: Permite definir un
nuevo tipo de datos en funcin de tipos ya conocidos.
Ejm:
typedef char nombre[30];
nombre lista[20];
"uno" "dos" veinte"
lista=
0 1 19
Ejemplo 2.a:
Leer n cadenas y ordenarlas en forma ascendente a su
longitud de caracteres. (usando typedef)
2: Usando un array de dos dimensiones:
char <nombre_de_cadena> [ nfilas ][ancho_cadena];
Ejm:
char lista [20][30];
0 1 2 3 4 29
0 u n o \O
1 d o s \O
lista=
19 d i e c i
Ejemplo 2.b:
Leer n cadenas y ordenarlas en forma ascendente a su
longitud de caracteres. (usando array de dos dimensiones)
NOTA:
Funcin scanf:
Lee hasta el espacio en blanco o el salto de linea (lo que
encuentra primero) y guarda la cadena agregando el carcter
nulo al final.
scanf(%s,&cadena);
Funcin gets():
Lee inclusive hasta espacios en blanco, hasta encontrar el salto
de linea y guarda la cadena agregandole el carcter nulo al
final.
gets(cadena);
Ejercicio 3:
Escribir un programa que ingrese una cadena de
caracteres y devuelva la palabra con mayor cantidad
de vocales, indicando cuantas vocales son.
Adems la frase almacene en un archivo.
Lea la frase del mismo archivo
Ejemplo:
Ingrese frase: peru vs bolivia
Bolivia con 4 vocales