Este documento presenta una introducción a las cadenas en diferentes lenguajes de programación como C, C++ y PHP. Define cadenas como secuencias ordenadas de caracteres y describe cómo se almacenan, representan y manipulan mediante operaciones como asignación, concatenación, búsqueda, extracción y comparación. También proporciona ejemplos de funciones para el tratamiento de cadenas como strlen(), strcpy() y funciones para convertir entre mayúsculas y minúsculas.
1. C.E.C.O Nº 3
Teoría de la Computación II
Integrantes:
Buslaiman, Emeli
Cortés, Cristian
Díaz, María Rosa
Oliva, Cristian
Páez, María Vanesa
2. Es una secuencia ordenada de longitud arbitraria.
Es una sucesión de caracteres.
Cadenas: Definición
3. En matemática:
Letras: w, x, y, z.
En programación:
Las letras de la 'a' a la 'z' y de la 'A' a la 'Z„.
Los números del '0' al '9„.
El espacio en blanco ' „.
Símbolos diversos '!', '@', '%', etc.
Puede estar formada por:
4. En un vector de datos
En una matriz de datos de una sola fila (array en inglés).
Almacenamiento
6. a Alerta
b Espacio atrás
f Salto de página
n Salto de línea
r Retorno de carro
t Tabulación horizontal
v Tabulación vertical
Barra invertida
' Comilla simple
" Comillas dobles
Caracteres Reservados
7. Asignación
Cad1: String [8];
Cad2: String [11];
Cad3: String [15];
Cad4: String [11];
Supongamos que se ejecuta la sentencia Cad2:= `informática´;
Cad2 I N F O R M A T I C A
1 2 3 4 5 6 7 8 9 10 11
Supongamos que ahora se ejecuta la sentencia Cad3:= Cad2;
Cad3 I N F O R M A T I C A longitud actual = 11
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 longitud máxima = 15
OPERACIONES CON CADENAS
8. Supongamos que se trata de ejecutar ahora
Cad1:= Cad2;
Cad1 I N F O R M AT longitud actual = 11
123 4 5 6 7 8 longitud máxima = 8
10. Imaginemos que tenemos registrados estos 2 libros:
El Aleph de Borges;
Antologia poetica de J.L. Borges;
Para recuperar todos los registros cuyo autor contenga la cadena
"Borges" debemos tipear:
select * from libros where autor like "%Borges%";
11. Extracción
Cad1=“Hola mundo”
Cad_resultante=“Hol”
Comparación
El carácter „A‟ será < el carácter „C‟
(código 65) (código 67)
El carácter 8 será < el carácter „i‟
(código 56) (código 105)
Así:
„EMILIO‟=EMILIO Expresión verdadera
„EMILIO‟=EMILIA Expresión falsa
12. Las cadenas pueden ser de naturaleza dinámica (pueden
alterar su longitud durante el tiempo de ejecución), o de
naturaleza estática (su longitud es fija a lo largo del tiempo
de ejecución). En este segundo caso el programador debe
prever que al recorrer la cadena los indíces no se vayan de
los límites previstos (C no permite que las cadenas crezcan
automáticamente de forma explícita, mientras que C# sí).
El final de la cadena se delimita de diferente manera en uno
u otro caso:
Mediante un carácter de fin de cadena ("0" en C) para las
cadenas de tipo dinámico.
Mediante una propiedad de la cadena que delimite su longitud
(Length en C#) para las de tipo estático.
Cadenas dinámicas y estáticas
13. Declaración:
char cadena_hola[]="Hola";
char otro_hola[]={'H','o','l','a','0'}; // Igual al anterior
char vector[]={'H','o','l','a'}; /* Un vector de 4 elementos, con los elementos 'H','o','l' y 'a' */
char espacio_cadena[1024]="Una cadena en C";
char cadena_vacia[]="";
Asignación: asignarle una cadena a otra
char *strcpy(char [], const char[]); # en C
cadena1=cadena2; # en C++
Ejemplos en C
14. Función calcula el largo de una cadena:
/* devuelve la cantidad de caracteres en cadena sin contar el '0' */
int largo_cadena(char cadena[])
{
int largo=0
while (cadena[largo]!='0') largo++;
return largo;
}
Ejemplos en C
15. Otras librerias:
largo = strlen(cadena) // Para obtener el largo de una cadena
strcpy(destino, origen) // Copia el contenido de origen en destino // destino debe ser
lo suficientemente grande
strcat(destino, origen) // Agrega el contenido de origen al final de destino // destino
debe ser lo suficientemente grander
resultado = strcmp(cadena1, cadena2) // Compara dos cadenas // devuelve un valor
menor, igual o mayor que 0 según si cadena1 es menor, // igual o mayor que
cadena2, respectivamente.
posicion = strchr(cadena, caracter) // Devuelve la posición en memoria de la primer
// aparición de caracter dentro de cadena
posicion = strstr(cadena,subcadena) // Devuelve la posición en memoria de la primer
// aparición de subcadena dentro de cadena
Ejemplos en C
16. Asignación
<?php
$a = 6;
$a = ($b = 4) + 5; // ahora $a es igual a 9 y $b se ha establecido en 4
$a = 3;
$a += 5; // establece $a en 8, como si se hubiera dicho: $a = $a + 5;
$b = "Hola ";
$a = 3;
$b = &$a; // $b es una referencia para $a
?>
Tratamiento de cadenas: PHP
17. Comparación
Ejemplo Nombre Resultado
TRUE si $a es igual a $b después de la manipulación de
$a == $b Igual
tipos.
TRUE si $a es igual a $b, y son del mismo tipo. (a partir
$a === $b Idéntico
de PHP 4)
TRUE si $a no es igual a $b después de la manipulación
$a != $b Diferente
de tipos.
TRUE si $a no es igual a $b después de la manipulación
$a <> $b Diferente
de tipos.
TRUE si $a no es igual a $b, o si no son del mismo tipo.
$a !== $b No idéntico
(a partir de PHP 4)
$a < $b Menor que TRUE si $a es estrictamente menor que $b.
$a > $b Mayor que TRUE si $a es estrictamente mayor que $b.
$a <= $b Menor o igual que TRUE si $a es menor o igual que $b.
$a >= $b Mayor o igual que TRUE si $a es mayor o igual que $b.
18. Concatenación
<?php
$cad1 = “Hoy hace mucho”;
$cad2 = “calor en la ciudad”;
echo $cad1.” ”.$cad2; // Mostrara “Hoy hace mucho calor en la ciudad”
$b = "Hola ";
$b .= “Mundo!"; // establece $b en "Hola Mundo!", al igual que $b = $b . ”Mundo!";
$var = “de php”;
echo = “Hola, “.”esta es una prueba “.$var;
// Hola, esta es una prueba de php
?>
19. Algunas Funciones
<?php
If (is_numeric($variable))
{
echo ”es numérica”;
}
Else
{
echo ”NO es numérica“;
}
$si = array('esto', 'es', 'un array');
echo is_array($si) ? 'Array' : 'No es un array';
echo "n";
?>