Unidad 5 - 1
[CADENA DE CARACTERES]
Cadenas de Caracteres
En C los datos tipo cadena, son tratados diferente a cualquier otro tipo de
datos, un dato cadena es un conjunto de caracteres encerrado entre comillas y
es representado de la siguiente forma: 'computadora', las variables
cadenas son declaradas de la siguiente forma: Declaración de una cadena de
caracteres char nombre_variable[cantidad_caracteres_variable]; Ejemplo char
apellido_materno[25]; -->lo que significa que en esta variable podremos
guardar 24 caracteres máximo más el carácter nulo '0' el cual indica donde una
cadena termina. char palabra[20]=”Universidad”; palabra es una variable que
puede almacenar hasta 20 caracteres, debido a que el último de esos caracteres
es el carácter nulo ('0') o fin de cadena, la variable podrá almacenar en
forma efectiva 19 caracteres. Gráficamente se vería así U n i v e r 0 1 2 3 4 5
Declaración de carácter char nombre_variable; Ejemplo char salir; Gráficamente
se vería así B Cadena Es una serie de caracteres que se trata como unidad. Una
cadena puede incluir letras, dígitos y diversos caracteres especiales, como
+, -, *, /, $ y otros. En C las constantes de cadenas se escriben entre
comillas, como sigue:
“Carolina Lujan” (un nombre) “Av. Sinaloa #581” (una dirección) “Mexicali, Baja
California” (unaciudad y estado) “686 1 62 14 54” (un
número telefónico) Una cadena es un arreglo de caracteres que termina con el
carácter nulo (´n´). Es importante notar que una cadena puede manejarse como una unidad o bien como un conjunto de
caracteres, los cuales pueden ser direccionados por la posición que ocupan
dentro de la cadena.
L.S.C. JONATHAN SÁNCHEZ BRITTON 1
s 6
I 7
d 8
a 9
d 10
n 11
12
13
14
15
16
17
18
19
Unidad 5 - 1
[CADENA DE CARACTERES]
Ejemplo #include #include void main() Salida en pantalla
La cadena de caracteres en el arreglo x es: Feliz Cumpleaños a Ti La cadena de
caracteres en el arreglo y es: Feliz Cumpleaños a Ti La cadena de caracteres en
el arreglo z es: Feliz Cumpleaños strcat(cadena1, cadena2); En donde cadena1
debe ser una variable cadena y cadena 2 debe ser una variable cadena o un dato
cadena, la unión de las dos cadenas queda en cadena1. Ejemplo strcat #include
#include void main()
L.S.C. JONATHAN SÁNCHEZ BRITTON
6
Unidad 5 - 1
[CADENA DE CARACTERES]
Salida en pantalla S1 = Feliz S2 = Año Nuevo strcat(s1,s2) = Feliz Año Nuevo
strcat(s3,s1,6) = Feliz strcat(s3,s1) = Feliz Feliz Año Nuevo Existe también
una variación a esta función strncat() y sirve para especificar cuántos caracteres
de cadena2 levamos a unir cadena1. strcpy(nombre,
'Juan '); -->nombre='Juan ' strncat(nombre,'Gabriel
Lopez',7); -->nombre='Juan Gabriel' Comparación de cadenas
strcmp(cadena1, cadena2); Compara dos cadenas. Si son iguales devuelve 0; si la
primera es menor que la segunda devuelve un valor <
0; si la primera es mayor que la segunda devuelve un valor > 0. if
(strcmp(cadena1, cadena2) == 0) // Son iguales if (strcmp(cadena1, cadena2)
< 0) // cadena1 < cadena2 if (strcmp(cadena1, cadena2) > 0) // cadena1
> cadena2 Para C las letras Mayúsculas son menor que las minúsculas ya que
en la tabla ASCII las mayúsculas empiezan en el número 65 y las minúsculas en
el 97 y esta función resta las posiciones, entonces la cadena 'ana'
es mayor que la cadena 'Ana', ya que 97 que es el valor de 'a' menos
65 que es el valor de 'A' es = a 32 la función regresará un 32 si
'ana' fuera la cadena cadena1, y un -32 si 'ana' fuera
cadena2. Tanto cadena1 como cadena2, pueden ser variables
o datos de tipo cadena, esta función en cuánto detecta una diferencia en la
resta deja de comparar, mientras la resta de caracteres sea cero el continua
verificando. Existen variantes a esta función y son: strncmp(),
que compara solo los primeros caracteres de las dos cadenas especificado por el
número, stricmp() o strcmpi(), compara sin importar mayúsculas yminúsculas, y
strnicmp() o strncmpi(), compara los primeros n caracteres sin importar
mayúsculas o minúsculas. Ejemplos t= strncmp(nombre,
cad, 5); determinar si son iguales. t=stricmp('Ana',
'ana'); Ambas cadenas son iguales.
-->compara los primeros 5 caracteres de ambas para
-->t=0, ya que no importan mayúsculas y minúsculas
t=strnicmp('ANA', 'Ana Barbara',
3)-->t=0, ya que compara solo los 3 primeros caracteres y no importa
mayúsculas y minúsculas.
L.S.C. JONATHAN SÁNCHEZ BRITTON 7
Unidad 5 - 1
[CADENA DE CARACTERES
Otras funciones Para saber la longitud de una
cadena, esto es la cantidad de caracteres que tiene una cadena existe la
función strlen(), cuya sintaxis es: Ejemplo strlen(cadena); --> regresa la
cantidad de caracteres que se encuentran almacenados en una cadena.
strcpy(mensaje, 'Mexicali'); x = strlen(mensaje); --> x = 8
strlwr(cadena); convierte una variable cadena a minúsculas: Ejemplo cambiar a
minúsculas char mensaje[30]='MINUSCULAS'; strlwr(mensaje);
puts(mensaje); -->mensaje='minusculas' Ejemplo cambiar a
mayúsculas char mensaje[25]; strcpy(mensaje, 'mayusculas');
strupr(mensaje); puts(mensaje) --> mensaje=”MAYUSCULAS” Ejemplo invierte la
cadena strcpy(mensaje, 'Mexicali'); strrev(mensaje);
-->mensaje='ilacixeM' Funciones para manipulación de cadena de
caracteres#include Función Descripción Determina la longitud de la cadena s1.
Devuelve el número de caracteres strlen(s1) que
precede al carácter nulo de terminación. strcmp(s1,s2) Compara las cadenas s1 y
s2, regresando un valor igual a cero, si ambas cadenas son iguales, mayor a
cero, si s1 es mayor que s2 o menor que cero si s1 es menor que s2. Copia el contenido de la cadena s2 en la cadena s1, incluyendo el
carácter nulo. Agrega la cadena s2, a el final
de la cadena s1, eliminando de s1 el carácter nulo de fin de cadena.
strcpy(s1,s2) strcat(s1,s2)
L.S.C. JONATHAN SÁNCHEZ BRITTON
8
Unidad 5 - 1
[CADENA DE CARACTERES]
#include Función isalnum() isalpha() isascii() isblank() isdigit() islower()
isupper() toupper() tolower() Descripción Verifica si un carácter es
alfanumérico o numérico. (A – Z o a - z) o un dígito
(0 - 9) Verifica si un carácter es alfabético. (A – Z o a - z) Verifica si un carácter pertenece a los primeros 127 caracteres de la
tabla ASCII. Verifica si un carácter es un espacio en
blanco o tabulador. Verifica si un carácter es
numérico. (0 – 9) Verifica si un carácter es una letra
minúscula. Verifica si un carácter es una letra
mayúscula. Convierte una letra a su correspondiente
mayúscula. Convierte una letra a su correspondiente
minúscula.
L.S.C. JONATHAN SÁNCHEZ BRITTON
9