BotonMenu
BotonIndice

PASCAL CON FREE PASCAL

PASCAL CON FREE PASCAL

PASCAL CON FREE PASCAL


5. TIPOS DE DATOS ESTRUCTURADOS, CONSTANTES, VARIABLES CON VALOR INICIAL O POR DEFECTO.
5.3. CADENA DE CARACTERES. (STRING)
5. TIPOS DE DATOS ESTRUCTURADOS, CONSTANTES, VARIABLES CON VALOR INICIAL O POR DEFECTO.
5.3. CADENA DE CARACTERES. (STRING)
5. TIPOS DE DATOS ESTRUCTURADOS, CONSTANTES, VARIABLES CON VALOR INICIAL O POR DEFECTO.
5.3. CADENA DE CARACTERES. (STRING)

SIGUIENTE

SIGUIENTE

SIGUIENTE


‒ Cadena de caracteres. (String)

Llamamos cadena de caracteres a los textos usados como datos en nuestros programas, se les dice cadena de caracteres, porque los caracteres usados se colocan uno detrás del otro formando frases.

El tipo de dato string nos permite declarar variables para almacenar un texto, hasta un máximo de 255 caracteres. Se puede definir entre corchetes la cantidad de caracteres que se desea usar, del siguiente modo:

 Var cad30:string[30];

Cuando no se coloca la cantidad de caracteres, entonces el compilador asume que se usará una cantidad de 255 caracteres como máximo.

Si queremos modificar un determinado carácter, accedemos al carácter indicando su posición, la posición debe ser de tipo entero excepto int64 y qword. Por ejemplo, si queremos modificar la letra que se encuentra en la posición 4 de la siguiente frase mal escrita “La taciencia es amarga, pero sus frutos son dulces”, por la letra p, tendremos que acceder del siguiente modo: Asumiendo que la frase se encuentra en la variable cad100, entonces para acceder al carácter que se encuentra en la posición 3, usamos cad100[4], colocando entre corchetes la posición del carácter que se desea modificar. Como en nuestro caso queremos cambiar la letra t por la letra p, hacemos uso del operador de asignación para asignar a cad100[4] la letra p y de ese modo cambiarlo. A continuación el ejemplo :


Descargar
{$codepage UTF8}

VAR cad100:string[100];

BEGIN
 cad100:='La taciencia es amarga, pero sus frutos son dulces';
 Writeln('mal escrito : ', cad100);
 cad100[4]:='p';
 Writeln('corregido : ',cad100)
END.
Código fuente 8: Corrigiendo la frase.
Descargar

La cantidad de bytes que ocupa en memoria una variable de tipo string esta determinado por la cantidad de caracteres que se declara al momento de definir la variable, más un primer carácter adicional que se usa para determinar la cantidad de caracteres que se colocarán en la variable. Si se declara una variable como string[30], ocupará en memoria 31 bytes. El carácter adicional se coloca en la posición ó indice 0 de la cadena de caracteres. Para saber la cantidad de caracteres colocados en la variable de tipo string, se debe acceder al carácter que se encuentra en la posición 0 de la variable (cad[0]). Como este byte adicional es interpretado como un carácter entonces se necesita el uso de la función ord. Ejemplo :


Descargar
{$codepage UTF8}

VAR cad50:string[50];  //En memoria 51 bytes reservados

BEGIN
  //se coloca sólo 10 caracteres, se usan 10 bytes de los 51 bytes reservados
  cad50:='El planeta'; 
                       
  //muestra la cantidad de caracteres colocados
  writeln('cad tiene : ', Ord(cad50[0]),' caracteres')
END.
Código fuente 9: Obteniendo la longitud de una cadena.
Descargar

También se puede obtener la cantidad de caracteres colocados usando la función lenght. A continuación el ejemplo:


Descargar
{$codepage UTF8}

VAR cad50:string[50];  //En memoria 51 bytes reservados

BEGIN
  //se coloca sólo 10 caracteres, se usan 10 bytes de los 51 bytes reservados
  cad50:='El planeta';    
  //muestra la cantidad de caracteres colocados
  writeln('cad tiene : ', length(cad50),' caracteres')
END.
Código fuente 10: Obteniendo la longitud de una cadena.
Descargar

Dos cadenas de caracteres se pueden unir con el operador +, del siguiente modo:


Descargar
{$codepage UTF8}

VAR cadA,cadB,cadC:string;

BEGIN
   Write('Ingrese su nombre : ');readln(cadB);
   cadA:='su nombre es : ';
   cadC:=cadA+cadB;
   Writeln(cadC)
END.
Código fuente 11: Concatenar o unir dos cadenas de caracteres.
Descargar

La operación de unir dos cadenas de caracteres o variables de tipo string se conoce como concatenar. El siguiente ejemplo es un programa que nos permite invertir la palabra ingresada desde el teclado, uniendo el ultimo carácter a una cadena de caracteres nueva:


Descargar
{$codepage UTF8}

VAR cad:String;
    i  :byte;
    alreves:String;

BEGIN
   Write('Ingrese una cadena de caracteres : ');
   Readln(cad);
   for i :=  ord(cad[0]) downto 1 do alreves:=alreves+cad[i];
   Writeln(alreves);
END.
Código fuente 12: Voltear una cadena de caracteres.
Descargar

La estructura for nos permite recorrer los caracteres de cad desde el último hasta el primer carácter de la variable cad, y conforme se va recorriendo se une el último carácter (cad[i]) con la cadena de caracteres alreves.

Como explique anteriormente (3.5 Operadores de relación) las cadenas de caracteres se pueden comparar usando los operadores de relación (<,>=,>=,>) teniendo en cuenta que las comparaciones se realizan comparando el código que tiene cada carácter, por ejemplo 'Perez' es anterior a 'Zavala', porque el código de la letra P es menor al código de la letra Z, en las codificaciones de caracteres ASCII y UTF8.

Además si comparamos dos cadenas de caracteres cad1 y cad2, y si cad1 tiene una cantidad menor que la otra, entonces cad1 es anterior a cad2, por ejemplo 'Perez' sería anterior a 'Perezoso'.

Decimos que una cadena de caracteres es una cadena de caracteres nula o vacía cuando se representa con dos comillas juntas (''). Por ejemplo:


Descargar
{$codepage UTF8}

VAR nombre,respuesta:string;

BEGIN
  Write('Ingrese su nombre : ');readln(nombre);
  if nombre='' then respuesta:='Usted no tiene nombre'
               else  respuesta:='su nombre es : '+nombre;
  Writeln(respuesta)
END.
Código fuente 13: Cadena de caracteres nula o vacía.
Descargar

El programa anterior verifica si el usuario ingreso un nombre y lo compara con una cadena de caracteres vacía para determinar la respuesta correcta.Podemos asignar a una variable de tipo string, una cadena de caracteres vacía o nula del siguiente modo : cad:='', esto se suele usar para asignar a una variable de tipo string un valor inicial. Para mostrar en consola comillas simples se debe escribir dos veces seguidas la comilla tal como se muestra en el ejemplo:


Descargar
{$codepage UTF8}

VAR Cad:string;

BEGIN
  Cad:='El conferencista disert'+#162+' sobre '' El teatro latino''';
  Writeln(Cad)
END.
Código fuente 14: Escritura de comillas simples.
Descargar

Los tipos de datos string también se pueden usar para crear tipos de datos tal como se muestra en el siguiente programa:


Descargar
{$codepage UTF8}

TYPE Cad10 = string[10];

VAR frase:Cad10;

BEGIN
  frase:='El texto es mayor de 10 caracteres';
  Writeln(frase)
END.
Código fuente 15: Cadena de caracteres como tipo de dato.
Descargar

En caso se asigne una cadena de caracteres con una cantidad de caracteres mayor, a la cantidad de caracteres que puede usar la variable, el compilador trunca esos caracteres y sólo asigna los que puede almacenar la variable.

En el ejemplo anterior se intenta asignar una frase que tiene más de 10 caracteres, al mostrarla por pantalla esta sólo mostrará los 10 primeros caracteres que ha podido almacenar la variable frase.

El tipo de dato string, permite almacenar secuencias de caracteres de 1 byte, esto quiere decir que se pueden almacenar una cadena de caracteres codificada en utf8; es decir si asignamos la siguiente cadena de caracteres "さようなら" a un tipo de dato string, este se debería poder almacenar en dicha cadena de caracteres, pero no siempre será así. Esto depende del sistema operativo y el administrador de caracteres que se esté usando. En Linux es posible hacerlo, pero en Windows no lo es ya que los programas que usan una consola o un intérprete de comandos son considerados como programas no Unicode y depende mucho del código de página que se usan en la configuración regional.


Última revisión: 29/08/2014.



SIGUIENTE
SIGUIENTE
SIGUIENTE


 
‒ Comentarios y sugerencias.

Agradezco de antemano, todo comentario, sugerencia, y donativo (a través de Paypal me), que ayude a mejorar los contenidos educativos de Conoce 3000. Además, cualquier pregunta o duda que tengas lo puedes hacer por este medio. Pero, todo contenido que pueda resultar ofensivo, malicioso, racista, sexista, discriminatorio, obsceno, vulgar será eliminado.








PORTADA |  INTERESANTE |  APUNTES |  LIBROS |  GALERIA


Creative Commons License


Todos los textos, imágenes y videos de Conoce3000 estan colocados bajo una licencia : Creative Commons Reconocimiento-NoComercial 3.0 Unported License.