Cadena de caracteres

Cadena de caracteres
Esta imagen muestra la relación entre las cadenas de caracteres, las fórmulas bien formadas y los teoremas. En algunos sistemas formales, sin embargo, el conjunto de los teoremas coincide con el de las fórmulas bien formadas.

En matemáticas o en programación, una cadena de caracteres, palabra, ristra de caracteres o frase (string en inglés) es una secuencia ordenada de longitud arbitraria (aunque finita) de elementos que pertenecen a un cierto alfabeto. En general, una cadena de caracteres es una sucesión de caracteres (letras, números u otros signos o símbolos).

En matemáticas es habitual usar las letras w, x, y,... para referirnos a las cadenas. Por ejemplo, si tenemos un alfabeto Σ = a,b,c, una cadena podría ser x = aacbbcba.

Desde un punto de vista de la programación, si no se ponen restricciones al alfabeto, una cadena podrá estar formada por cualquier combinación finita de todo el juego 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 mismo ámbito (el de la programación), 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.
  • 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; en teoría de autómatas es común denotar a la misma por medio de la letra griega \epsilon.

Contenido

Operaciones con cadenas

Siguiendo en el ámbito de la informática, al considerar las cadenas como un tipo de datos, hay que definir (o conocer) cuales son las operaciones que podemos hacer con ellas, en principio éstas podrían ser muchas y llegar a ser muy sofisticadas, aquí se exponen algunas de ellas:

  • Asignación: Consiste en asignarle una cadena a otra.
  • Concatenación: Consiste en unir dos cadenas o más (o una cadena con un carácter) para formar una cadena de mayor tamaño.
  • Búsqueda: Consiste en localizar dentro de una cadena una subcadena más pequeña o un carácter.
  • Extracción: Se trata de sacar fuera de una cadena una porción de la misma según su posición dentro de ella.
  • Comparación: Se utiliza para comparar dos cadenas.

(Operaciones con cadenas en el lenguaje C)

Representación

Una cadena suele ser representada entre comillas dobles superiores ("palabra"), mientras que un carácter de esa cadena (un char en inglés) suele ser representado entre comillas simples ('p'). Por ejemplo, en C:

char c = 'a';
char str[5] = "hola";

Generalmente para acceder a un carácter en una posición determinada se suele usar la forma variable[posición] como cuando se accede a un vector.

Para poder mostrar una comilla (") dentro de la cadena y no tener problemas con las comillas que la delimitan, se usan secuencias de escape. Esto se aplica a otros caracteres reservados o no imprimibles como el retorno de carro. No obstante, las expresiones para producir estas secuencias de escape dependen del lenguaje de programación que se esté usando. Una forma común, en muchos lenguajes, de escapar un carácter es anteponiéndole un «\» (sin comillas), p. e.: «\"» (sin comillas).

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.

Ejemplos de algunas operaciones comunes

Asignación: asignarle una cadena a otra

char *strcpy(char [], const char[]); # en C 
cadena1=cadena2; # en C++ 

Concatenación: unir dos cadenas de caracteres.

$pareja = "Joshua"." y "."Lidia"     # en Perl y PHP; 
pareja = "Luisa" & " y " & "Carmen"  # en Visual Basic;
pareja = "Luisa" + " y " + "Carmen"; # en C++ y Java con la clase String.
strcat(cadena1,cadena2); strcat(cadena1, cadena3); # en C (Debe haber suficiente espacio en la primera)

Nº de caracteres de una cadena

int strlen(const char[]); # en C Devuelve el nº de caracteres sin contar el '\0'
cadena.length();          # en C++

Comparación: Compara dos cadenas en orden lexicográfico

int strcmp(const char[], const char[]); # en C Devuelvee <0 si la 1ª es menor, >0 si es mayor y 0 si son iguales
cadena1==cadena2; cadena1>cadena2; etc. # en C++ Devuelve un valor de verdad


Multiplicar una cadena: repetir una cadena un número de veces

$puntos ="." x 5 # pone 5 puntos en Perl

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Mira otros diccionarios:

  • Cadena vacía — Saltar a navegación, búsqueda En ciencias de la computación y teoría de lenguajes formales, una cadena vacía o string vacío (en inglés) es la única cadena de caracteres de tamaño cero. Se denota usualmente con las letras griegas λ o ϵ. Hacer… …   Wikipedia Español

  • Cadena — (Del lat. catena.) ► sustantivo femenino 1 Serie de eslabones u otras piezas, generalmente metálicas, enlazadas entre sí formando un conjunto articulado: ■ la cadena de la bicicleta se ha roto. 2 Conjunto de personas que se unen cogiéndose de la… …   Enciclopedia Universal

  • Cadena — Saltar a navegación, búsqueda Originalmente, la palabra cadena se ha utilizado para referirse a un objeto constituido por una serie de eslabones, generalmente metálicos, enlazados entre sí. De entre las cadenas se distinguen varios tipos… …   Wikipedia Español

  • Reconocimiento óptico de caracteres — El Reconocimiento Óptico de Caracteres (OCR), así como el reconocimiento de texto, en general son aplicaciones dirigidas a la digitalización de textos. Identifican automáticamente símbolos o caracteres que pertenecen a un determinado alfabeto, a… …   Wikipedia Español

  • Expresión regular — Saltar a navegación, búsqueda Una expresión regular, a menudo llamada también patrón, es una expresión que describe un conjunto de cadenas sin enumerar sus elementos. Por ejemplo, el grupo formado por las cadenas Handel, Händel y Haendel se… …   Wikipedia Español

  • Compresión de Burrows-Wheeler — La Transformación de Burrows–Wheeler (BWT del inglés Burrows–Wheeler transform, también conocida como compresión por ordenación de bloques), es un algoritmo usado en técnicas de compresión de datos como en bzip2. Fue inventado por Michael Burrows …   Wikipedia Español

  • Punycode — Saltar a navegación, búsqueda Punycode (código púny) es una sintaxis de codificación usada en programación que usa una cadena Unicode que puede ser traducida en una cadena de caracteres más limitada compatible con los nombres de red. La sintáxis… …   Wikipedia Español

  • C Sharp — Saltar a navegación, búsqueda El título de este artículo se muestra incorrectamente debido a limitaciones técnicas. El título correcto es C#. C Sharp Paradigma: Orientado a objetos Apareció en: 2001 Diseñado por: Microsoft Corporation Última… …   Wikipedia Español

  • UTF-8 — (8 bit Unicode Transformation Format) es un formato de codificación de caracteres Unicode e ISO 10646 utilizando símbolos de longitud variable. UTF 8 fue creado por Robert C. Pike y Kenneth L. Thompson. Está definido como estándar por la RFC 3629 …   Wikipedia Español

  • Check Wikipedia — Wikiproyecto:Check Wikipedia Saltar a navegación, búsqueda Esta página contiene de forma consciente fallos ortográficos. Los bots no deben intentar corregirlos. Atajo PR:CWPR:CW …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”