programacion de cadenas
DESCRIPTION
Definicion, operaciones y ejemplos de usos en distintos lenguajes de cadenas de caracteres.-TRANSCRIPT
![Page 1: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/1.jpg)
C.E.C.O Nº 3
Teoría de la Computación II
Integrantes:
Buslaiman, EmeliCortés, CristianDíaz, María RosaOliva, CristianPáez, María Vanesa
![Page 2: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/2.jpg)
Cadenas: Definición
Es una secuencia ordenada de longitud arbitraria. Es una sucesión de caracteres.
![Page 3: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/3.jpg)
Puede estar formada por:
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.
![Page 4: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/4.jpg)
Almacenamiento
En un vector de datos En una matriz de datos de una sola fila (array en inglés).
![Page 5: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/5.jpg)
Representación
Char c = ‘a’; Char str[5]= “hola”;
![Page 6: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/6.jpg)
Caracteres Reservados
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
![Page 7: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/7.jpg)
OPERACIONES CON CADENAS
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
![Page 8: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/8.jpg)
Supongamos que se trata de ejecutar ahora
Cad1:= Cad2;
Cad1 I N F O R M A T longitud actual = 11
1 2 3 4 5 6 7 8 longitud máxima = 8
![Page 9: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/9.jpg)
Concatenacióncadena_1 =cadena_2 +cadena_3
Búsqueda
select * from libros
where autor=‘Borges’;
![Page 10: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/10.jpg)
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%";
![Page 11: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/11.jpg)
ExtracciónCad1=“Hola mundo” Cad_resultante=“Hol”
ComparaciónEl 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
![Page 12: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/12.jpg)
Cadenas dinámicas y estáticas
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.
![Page 13: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/13.jpg)
Ejemplos en C
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++
![Page 14: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/14.jpg)
Ejemplos en C
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;
}
![Page 15: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/15.jpg)
Ejemplos en C
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
![Page 16: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/16.jpg)
Tratamiento de cadenas: PHP
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
?>
![Page 17: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/17.jpg)
Ejemplo Nombre Resultado
$a == $b IgualTRUE si $a es igual a $b después de la manipulación de tipos.
$a === $b IdénticoTRUE si $a es igual a $b, y son del mismo tipo. (a partir de PHP 4)
$a != $b DiferenteTRUE si $a no es igual a $b después de la manipulación de tipos.
$a <> $b DiferenteTRUE si $a no es igual a $b después de la manipulación de tipos.
$a !== $b No idénticoTRUE si $a no es igual a $b, o si no son del mismo tipo. (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.
Comparación
![Page 18: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/18.jpg)
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
?>
![Page 19: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/19.jpg)
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";
?>
![Page 20: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/20.jpg)
<?php
$str = “hola";$str = strtoupper($str);echo $str; // muestra: HOLA
$str2 = “MUNDO";$str2 = strtolower($str2);echo $str2; // muestra: hola
$str3 = 'abcdef';echo strlen($str3); // 6
?>
![Page 21: Programacion de Cadenas](https://reader036.vdocumento.com/reader036/viewer/2022062419/557d142ad8b42a4f498b474c/html5/thumbnails/21.jpg)
Fin