# Cadena (informàtica)

En informàtica, una cadena (en anglès string) és un tipus d'estructura de dades que conté una seqüència de caràcters, paraules, o frases amb un ordre i una llargada determinades, que pertanyen a un cert llenguatge formal o alfabet anàlogues a una fórmula o una oració. En general, és una successió de caràcters (lletres, nombres o altres signes o símbols). Si no es posen restriccions a l'alfabet, una cadena podrà estar formada per qualsevol combinació finita dels caràcters disponibles (les lletres de la 'a' a la 'z' i de la 'A' a la 'Z', els números de l' ' 0 'a l'' 9 ', l'espai en blanc' ', símbols diversos'! ',' @ ','% ', etcètera).
En aquest mateix àmbit, s'utilitzen habitualment com un tipus de dada predefinit, per paraules, frases o qualsevol altra successió de caràcters. En aquest cas, s'emmagatzemen en un vector de dades, o matriu de dades d'una sola fila (array, en anglès). Les cadenes es poden emmagatzemar de manera física:
* seguides;
* enllaçats lletra a lletra.
Generalment els caràcters es guarden un a continuació d'un altre per a fins d'eficiència en l'accés.
Un cas especial de cadena és la que conté zero caràcters. A aquesta cadena la hi crida cadena buida; en teoria d'autòmats, és comú representar per mitjà de la lletra grega

## Operacions sobre cadenes

Diverses maneres de construir una nova cadena(constructors):
* Un operació per crear una nova cadena amb un determinat contingut.
* Un operació per copiar una subcadena o una porció concreta d'una cadena a partir d'una posició determinada amb una llargada determinada (per exemple, strcpy en C o substr en awk).
* Una operació per concatenar dues cadenes per construir-ne un de més llarg (per exemple, strcat en C, en canvi aquesta operació és implícita en awk).
Diverses operacions de test sobre cadenes:
* Una operació per comprovar si una cadena és buida (o, cosa que és el mateix, quan la seva llargada és zero).
* Una operació per obtenir la llargada o el nombre de caràcters que conté una cadena (per exemple, strlen en C o length en awk).
* Una operació per comparar si dues cadenes són iguals (per exemple, strcmp en C).
* Una operació per comparar dues cadenes segons l'ordre dels seus caràcters, o el que sol ser el mateix, quina cadena va davant i quin rere en l'ordenació alfabètica (per exemple, strcmp en C). Aquest ordre, però, és dependent del tipus de codificació de caràcters.
* Una operació per trobar si una subcadena és present dins d'un altra cadena (per exemple, strstr en C o index en awk).
* Una operació per trobar si una cadena conté una o més correspondències amb una expressió regular (per exemple, match en awk).
Diverses operacions de manipulació del contingut de les cadenes:
* Una operació per passar les lletres a minúscules o majúscules (per exemple, strlwr o strupr en C, tolower o toupper en awk). Aquest conversió, però, és dependent del tipus de codificació de caràcters.
* Una operació per substituir una o més ocurrències d'una subcadena, potser especificat amb expressió regular, dins d'una altra cadena (per exemple, sub o gsub en awk).
* Una operació per trencar una cadena en porcions segons un delimitador determinat i construir un array amb els fragments (per exemple, split en awk).

## Referències

* ↑ Segons el TERMCAT
Viccionari