Cadena de caracteres
De Wikipedia, la enciclopedia libre
En matemáticas, una cadena de caracteres, palabra 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 o determinados signos). Habitualmente se usan 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.
Se utilizan en programación, 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.
[editar] 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[4] = "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).
[editar] 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íta, 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 (Count en C#) para las de tipo estático.
[editar] Algunas operaciones comunes
Concatenación: unir dos cadenas de caracteres.
$pareja = "Luisa"." y "."Carmen" # en Perl y PHP; pareja = "Luisa" & " y " & "Carmen" # en Visual Basic; pareja = "Luisa" + " y " + "Carmen"; # en C++ con la clase String. String pareja = "Luisa"+ " y " + "Carmen"; # en Java con la clase String
Multiplicar una cadena: repetir una cadena un número de veces
$puntos ="." x 5 # pone 5 puntos en Perl