Você está na página 1de 4

UTN FRRo Algoritmos y Estructuras de Datos Cadenas de caracteres Tipo String

TIPO STRING:
En el Pascal estndar para el manejo de informacin que viene expresada por palabras, como por ejemplo apellido, nombre, calle, etc. se usan arreglos de caracteres Tambin empleamos estos arreglos cuando debemos trabajar con datos numricos, sobre los que no corresponde realizar operaciones como por ejemplo: nmero de telfono, DNI. Es frecuente ver en los programas declaraciones como las siguientes: TYPE palabra= array[1..20] of char; .. VAR nombre, calle, telefono : palabra; o utilizando la declaracin implcita de tipo el equivalente: VAR nombre, calle, telefono : array[1..20] of char El uso de dicho tipo de datos para almacenar textos es tan usual que muchos lenguajes agregan un nuevo tipo de datos, para facilitar el tratamiento de estas cadenas de caracteres. Turbo Pascal ofrece el tipo de dato string, con una variedad de funciones y procedimientos especficos, que tornan muy cmodo su tratamiento Bsicamente el string es un arreglo de caracteres. Al definirlo podemos establecer su longitud (nmero mximo de caracteres que va a poder contener desde 1 hasta 255 caracteres.

Como se declara:
Se declara con la palabra clave string seguida por un par de corchetes encerrando la mxima longitud prevista de la cadena. Por omisin, si este nmero no se declara, se entiende que es 255. TYPE cad20 = string [20]; cad25 = string [25]; cad = string; VAR apellido : cad20; nombre : cad25; titulo: cad; O, en forma equivalente: VAR apellido : string [20]; nombre : string [25]; titulo: string; En los programas en que se declara este tipo de variables de cadena se pueden realizar asignaciones, comparaciones, lecturas, salidas y otras operaciones en una forma muy directa, debido a que el Turbo Pascal permite a al tipo string ciertas funcinalidades similares a la de los tipos simples.

Pag. 1 de 4

M. Iwanow- R.Kantor

UTN FRRo Algoritmos y Estructuras de Datos Cadenas de caracteres Tipo String Longitud de una cadena:
Se consideran dos longitudes: una lgica y una fsica. La longitud lgica es la cantidad de caracteres que efectivamente estn guardados en el string. La longitud fsica en bytes es igual al nmero de caracteres con que fue creada ms uno. La longitud fsica aumenta en uno pues se agrega un primer elemento para guardar en el la longitud lgica. Sea por ejemplo una declaracin: VAR flor : string[15]; Y se realiza la asignacin : flor := roSa La longitud lgica de la variable ser de 4 caracteres y la longitud fsica ser de 16 bytes pues as fue definida. En memoria : 4 r o flor S a

Existe un caso especial de una cadena, que es cuando no tiene ningn carcter en ella, en ese momento decimos que es una cadena vaca o nula. Es recomendable inicializar los valores de las cadenas a cadenas vacas o nulas al inicio del programa, para evitar datos extraos e indeseables. A las variables de cadena se pueden dar valores con una sentencia de asignacin o con una sentencia de lectura (read). En ambos casos se evala la cadena fuente y se almacena en la variable de la cadena destino. Dependiendo del tamao lgico de las cadenas fuente y destino se pueden presentar tres casos diferentes 1)Si Las longitudes lgicas de las cadenas destino y fuente son iguales cada posicin de destino se rellena con el respectivo carcter de la cadena fuente. 2)Si la longitud fsica de la cadena destino es mayor que la longitud lgica de la cadena fuente, despus de la copia la cadena destino seguir teniendo la misma longitud fsica, pero ya que slo se almacenan los caracteres de la cadena fuente, en la primeras posiciones del arreglo, su longitud lgica ser igual a la de la cadena fuente. 3)Si la longitud fsica de la cadena destino es menor que la de la cadena fuente, se almacenarn los primeros n caracteres (de izquierda a derecha) de la cadena fuente, donde n es la longitud con que fue declarada la cadena destino. Operaciones con Cadenas: El Turbo Pascal ofrece algunas herramientas que facilitan el manejo del tipo de datos string.

Pag. 2 de 4

M. Iwanow- R.Kantor

UTN FRRo Algoritmos y Estructuras de Datos Cadenas de caracteres Tipo String


Manejo de los elementos de la cadena Es posible leer cada elemento de una cadena por separado, ya que en esencia se trata de un arreglo de caracteres. Si en la variable nombre almacenamos la cadena 'Pedro' es posible asignar a otra cadena el valor de nombre[x] donde x es la posicin de la cadena que se quiere leer. Por ejemplo la instruccin : writeln(nombre[3]) mostrar el carcter d Longitud de una cadena: Para conocer la longitud de una cadena utilizamos la funcin length, la longitud es la cantidad de caracteres que contiene la cadena en un momento determinado.(lgica) Su sintaxis es: length (cadena) y la funcin regresa un valor entero. Comparacin de cadenas La comparacin de cadenas es una operacin muy comn en Turbo Pascal; estas comparaciones se realizan con base en el orden del cdigo ASCII, por ejemplo la cadena 'Rosa' es menor a la cadena 'rosa' ya que el valor del cdigo ASCII de R es menor que el de r. Unin de cadenas En ocasiones es necesario combinar dos o ms cadenas de caracteres en una sola, para lograr sto utilizamos los siguientes mtodos. Operador + Es una de las formas ms sencillas de unir dos cadenas y se maneja exactamente como una suma, la nica limitante es que en caso de ser mayor la longitud resultante de la suma que la longitud que pueda manejar la variable en que se almacenar se truncarn los caracteres sobrantes. Ejemplo: cad1 := 'Buenos '; cad2 := 'dias '; cad3 := cad1 + c ad2; .. writeln (cad3); Mostrar : 'Buenosdias '. (Notes que este ejemplo es solo una seccin del programa, para ejecutarlo es necesario completar la estructura). Funcin concat La funcin concat produce los mismos resultados que la concatenacin, es posible incluir cualquier nmero de cadenas que se necesiten concatenar. La suma de las cadenas no deber sobrepasar la longitud que la variable, a la cual se asignar dicha suma, puede manejar. Ejemplo: cadena := concat (cad1, cad2, cad3); Funcin copy La funcin copy regresa una subcadena de una cadena dada como parmetro. Su sintaxis es: copy (cadena, ini, canti); Donde cadena es de tipo string, ini es la posicin desde la cual se obtendr la subcadena y canti es el nmero de caracteres que se extraern. Ejemplo: palabra := "Rosario"; writeln (copy(palabra, 3, 4)); Mostrar: sari

Pag. 3 de 4

M. Iwanow- R.Kantor

UTN FRRo Algoritmos y Estructuras de Datos Cadenas de caracteres Tipo String


Pos La funcin Pos nos sirve para localizar una determinada cadena dentro de otra, en otras palabras para verificar si una cadena es subcadena de otra segunda. Los parmetros que requiere son: la cadena que se buscar y la cadena donde se buscar la primera: pos (cadena1, cadena2); Cuando encuentra la cadena la funcin devuelve su posicin inicial, en caso de que no la encuentre devuelve el valor de 0. Ejemplo: cadena := 'Domingo Lunes Martes Miercoles Jueves Viernes Sabado'; writeln(pos('Lunes', cadena)); {Muestra 9} writeln(pos('Jueves', cadena)); {Muestra 32} writeln(pos('Ayer', cadena)); {Muestra 0} Insert El procedimiento Insert sirve para insertar una cadena dentro de otra en alguna posicin determinada. Sintaxis: cadena1, cadena2, posicin Insert () Donde cadena1 es la que se insertar, cadena2 es donde se insertar y posicin es el lugar donde se insertar. El parmetro posicin debe ser de tipo entero. Delete Este procedimiento elimina un determinado nmero de caracteres de una cadena. Su sintaxis es: delete (cadena, inicio, nmero) cadena es la variable en la cual se eliminarn los caracteres, inicio es la posicin del primer carcter a eliminar y nmero es la cantidad de caracteres que se borrarn. Str, Val Sucede con cadenas que se quiera convertir una que contiene un nmero a su valor numrico, para poder utilizarlo en operaciones matemticas, as como convertir un nmero a su equivalente en una cadena. ( no es lo mismo el valor 25 y el valor '25', en el primer caso es un nmero mientras que en el segundo es un par de caracteres ASCII.) El procedimiento str obtiene una cadena a partir de un valor numrico. Su sintaxis es: str(valor, cadena) Donde valor es el nmero a convertir y cadena es la variable donde se almacenar la cadena ya convertida. val es un procedimiento que convierte una cadena en un valor de tipo numrico. Si la cadena no esta formada exclusivamente de nmeros siguiendo las reglas para el tipo de datos que se desea obtener se generar un error. Sintaxis: val (cad, num, cdigo) Donde cad contiene la cadena que ser procesada, num es la variable de tipo numrico donde se guardar el valor de la cadena y cdigo es una variable de tipo entero que contendr el valor de 0 si no hubo errores y un valor diferente en caso de que no se haya podido convertir la cadena, el valor de Cdigo representa la posicin de la cadena donde ocurri el error. Se recomienda probar todas estas funciones y procedimientos en la mquina.

Pag. 4 de 4

M. Iwanow- R.Kantor

Você também pode gostar