Muciño V 2M2 Unidad 7
Muciño V 2M2 Unidad 7
Muciño V 2M2 Unidad 7
TLALNEPANTLA
UNIDAD 7
ALGORITMOS Y PROGRAMACION
GRUPO: 2M2
ALUMNO: JOSE VICTOR MUCIÑO
PEREZ
PROFESOR: JOSÉ MARTÍN
ALEJANDRE ARGUIJO
UNIDAD 7 CADENAS
Fundamentos de Cadenas y Caracteres
Cadena de caracteres. (string en inglés). Es una secuencia ordenada de longitud
arbitraria (aunque finita) de elementos que pertenecen a un cierto lenguaje formal
o alfabeto; análogas a una frase o a una oración.
En general, una cadena de caracteres es una sucesión de caracteres:
(letras, números, espacio, signos o símbolos).
En programación, si no se ponen restricciones al alfabeto, una cadena podrá estar
formada por cualquier combinación finita de todo el juego de caracteres
disponibles (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).
En este ámbito se utilizan normalmente como un tipo de dato predefinido, para
palabras, frases o cualquier otra sucesión de caracteres. En este caso, se
almacenan en un vector de datos, o matriz de datos de una sola fila (array en
inglés). Las cadenas se pueden almacenar físicamente seguidas o enlazados letra
a letra.
Generalmente son guardados un carácter a continuación de otro por una cuestión
de eficiencia de acceso.
Un caso especial de cadena es la que contiene cero caracteres, a esta cadena se
la llama cadena vacía
Cadenas de caracteres
Las cadenas de caracteres son tablas con elementos de tipo char: char nombre
[30];
A diferencia de otras tablas, las cadenas poseen un formato, %s, que permite
leerlas como sigue:
scanf ("%s", nombre);
La cadena nombre tiene un máximo de 30 caracteres. Si tecleamos Ana, por
ejemplo, seguido de INTRO, se ocuparán los cuatro primeros elementos de la
tabla, no los tres primeros como cabría esperar.
El primer elemento contendrá una A, el segundo una n, el tercero una a y el cuarto
un carácter especial cuyo código ASCII es 0 eindica que ahí acaba la cadena.
El lenguaje C utliza este carácter, por ejemplo, para saber cuándo tiene que parar
de escribir caracteres en un printf como el siguiente:
printf ("%s", nombre);
El siguiente programa utiliza este marcador de final de cadena para calcular la
longitud de una cadena leída del teclado:
Funciones de Manejo de Cadenas y Caracteres
Microsoft SQL Server tiene algunas funciones para trabajar con cadenas de
caracteres. Estas son algunas:
- substring(cadena,inicio,longitud): devuelve una parte de la cadena especificada
como primer argumento, empezando desde la posición especificada por el
segundo argumento y de tantos caracteres de longitud como indica el tercer
argumento. Ejemplo:
SELECT substring('Buenas tardes',8,6);
retorna "tardes".
- str(numero, longitud,cantidaddecimales): convierte números a caracteres; el
primer parámetro indica el valor numérico a convertir, el segundo la longitud del
resultado (debe ser mayor o igual a la parte entera del número más el signo si lo
tuviese) y el tercero, la cantidad de decimales. El segundo y tercer argumento son
opcionales y deben ser positivos. String significa cadena en inglés.
Ejemplo: se convierte el valor numérico "123.456" a cadena, especificando 7 de
longitud y 3 decimales:
SELECT str(123.456,7,3);
SELECT str(-123.456,7,3);
retorna '-123.46';
Si no se colocan el segundo y tercer argumento, la longitud predeterminada es 10
y la cantidad de decimales 0 y se redondea a entero. Ejemplo: se convierte el valor
numérico "123.456" a cadena:
SELECT str(123.456);
retorna '123';
SELECT str(123.456,3);
retorna '123'
Si el segundo parámetro es menor a la parte entera del número, devuelve
asteriscos (*). Ejemplo: select str(123.456,2,3);
retorna "**".
- stuff(cadena1, inicio,cantidad,cadena2): inserta la cadena enviada como cuarto
argumento, en la posición indicada en el segundo argumento, reemplazando la
cantidad de caracteres indicada por el tercer argumento en la cadena que es
primer parámetro. Stuff significa rellenar en inglés.
Ejemplo:
SELECT stuff('abcde',3,2,'opqrs');
retorna "abopqrse". Es decir, coloca en la posición 2 la cadena "opqrs" y
reemplaza 2 caracteres de la primera cadena.
Los argumentos numéricos deben ser positivos y menor o igual a la longitud de la
primera cadena, caso contrario, retorna "null".
Si el tercer argumento es mayor que la primera cadena, se elimina hasta el primer
carácter.
- len(cadena): retorna la longitud de la cadena enviada como argumento.
"len" viene de length, que significa longitud en inglés.
Ejemplo:
SELECT len('Hola');
devuelve 4.
- char(x): retorna un carácter en código ASCII del entero enviado como
argumento. Ejemplo:
SELECT char(65);
retorna "A".
- left(cadena,longitud): retorna la cantidad (longitud) de caracteres de la cadena
comenzando desde la izquierda, primer carácter.
Ejemplo:
SELECT LEFT('buenos dias',8);
retorna "buenos d".
- right(cadena,longitud): retorna la cantidad (longitud) de caracteres de la
cadena comenzando desde la derecha, último caracter. Ejemplo:
SELECT RIGHT('buenos dias',8);
retorna "nos dias".
-lower(cadena): retornan la cadena con todos los caracteres en minúsculas.
lower significa reducir en inglés. Ejemplo:
SELECT lower('HOLA ESTUDIAnte');
retorna "hola estudiante".
-upper(cadena): retornan la cadena con todos los caracteres en
mayúsculas. Ejemplo:
SELECT upper('HOLA ESTUDIAnte');
-ltrim(cadena): retorna la cadena con los espacios de la izquierda
eliminados. Trim significa recortar. Ejemplo:
SELECT ltrim(' Hola ');
retorna "Hola ".
- rtrim(cadena): retorna la cadena con los espacios de la derecha
eliminados. Ejemplo:
SELECT rtrim(' Hola ');
retorna " Hola"
- replace(cadena,cadenareemplazo,cadenareemplazar): retorna la
cadena con todas las ocurrencias de la subcadena reemplazo por la
subcadena a reemplazar. Ejemplo:
SELECT REPLACE('xxx.sqlserverya.com','x','w');
retorna "www.sqlserverya.com'.
- reverse(cadena): devuelve la cadena invirtiendo el order de los
caracteres. Ejemplo:
SELECT reverse('Hola');
retorna "aloH"
- patindex(patron,cadena): devuelve la posición de comienzo (de la
primera ocurrencia) del patrón especificado en la cadena enviada como
segundo argumento. Si no la encuentra retorna 0. Ejemplos:
SELECT patindex('%Luis%', 'Jorge Luis Borges');
retorna 7.
SELECT patindex('%or%', 'Jorge Luis Borges');
retorna 2.
SELECT patindex('%ar%', 'Jorge Luis Borges');
retorna 0
- charindex(subcadena,cadena,inicio): devuelve la posición donde comienza la
subcadena en la cadena, comenzando la búsqueda desde la posición indicada por
"inicio". Si el tercer argumento no se coloca, la búsqueda se inicia desde 0. Si no
la encuentra, retorna 0.
Ejemplos:
SELECT charindex('or','Jorge Luis Borges',5);
retorna 13.
SELECT charindex('or','Jorge Luis Borges');
retorna 2.
SELECT charindex('or','Jorge Luis Borges',14);
retorna 0.
SELECT charindex('or', 'Jorge Luis Borges');
retorna 0.
- replicate(cadena,cantidad): repite una
cadena la cantidad de veces
especificada. Ejemplo:
SELECT replicate ('Hola',3);
retorna "HolaHolaHola";
- space(cantidad): retorna una cadena de
espacios de longitud indicada por
"cantidad", que debe ser un valor positivo.
Ejemplo:
SELECT 'Hola'+space(1)+'que tal';
retorna "Hola que tal".
Se pueden emplear estas funciones
enviando como argumento el nombre de
un campo de tipo caracter.