Consultar ensayos de calidad


C++ Cadena De Caracteres



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


Política de privacidad