Cadeia de caracteres: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Removendo o termo "samblagem": não há qualquer referência ou indício da utilização do termo senão textos publicados pelo próprio {{U|Arthur Buchsbaum}}, que foi quem inseriu o termo no artigo.
Revisão do texto
Linha 1:
{{Sem-fontes|data=fevereiro de 2011| angola=| arte=| Brasil=| ciência=| geografia=| música=| Portugal=| sociedade=|1=|2=|3=|4=|5=|6=}}
EmNa [[programação]] e em [[linguagensde formaiscomputadores]], uma '''cadeia de caracteres''' (também conhecida comoou '''''string''')'' é uma sequência ordenada de [[caractere]]sSequência (símbolosmatemática) escolhidos a partir|sequência]] de um [[conjuntocaractere]] pré-determinado. Em programaçãos, cadageralmente símboloutilizada armazenadopara narepresentar memóriapalavras, éfrases representadoou por um valor numérico. Uma [[variável (programação)|variável]] declarada com [[tipotextos de dado]] cadeia geralmente armazena um número pré-determinado de caracteresprograma.
 
Nas maioria das linguagens de programação, as cadeias de caracteres podem ser expressas tanto na forma [[Literal (programação de computadores)|literal]], como através de algum tipo de variável. Quando expressos através de variáveis, o conteúdo da cadeia geralmente pode ser alterado pela da inclusão/exclusão de elementos ou pela da substituição de seus elementos por outros elementos, formando uma nova cadeia. Assim, uma cadeia de caracteres é vista como sendo um [[tipo de dado]] e normalmente é implementada através de um [[Arranjo (computação)|arranjo]] de [[byte|bytes]] que armazena os elementos da cadeia em sequência, utilizando alguma [[Codificação de caracteres|codificação]] preestabelecida.
== Teoria formal ==
Seja Σ um ''[[alfabeto]]'', um conjunto finito e não vazio. Os elementos de Σ são chamados caracteres. Uma cadeia sobre Σ é qualquer sequência finita de caracteres de Σ. Por exemplo, se Σ = {0, 1}, então ''0101'' é uma cadeia sobre Σ. O tamanho da cadeia é a quantidade de caracteres, e pode ser qualquer valor inteiro não negativo. A cadeia vazia é uma cadeia única sobre Σ de tamanho 0, sendo denotada por ''ε'' ou ''λ''.
 
Nas [[linguagens formais]], uma cadeia de caracteres é uma sequência finita de símbolos escolhidos a partir de conjunto denominado [[alfabeto]].
O conjunto de todas as cadeias sobre Σ de tamanho ''n'' é denotado por Σ<sup>''n''</sup>. Por exemplo, se Σ = {0, 1}, então Σ² = {00, 01, 10, 11}. Note que Σ<sup>0</sup> = {ε} para qualquer alfabeto Σ. O conjunto de todas as cadeias sobre Σ de qualquer tamanho é denotado por Σ*. Em termos de Σ<sup>''n''</sup>, <math>\Sigma^{*} = \bigcup_{n=0}^{\infty}\Sigma^{n}</math>. Por exemplo, se Σ = {0, 1}, Σ* = {ε, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, …}. Apesar do conjunto Σ* ser infinito, todos os elementos de Σ* possuem tamanho finito.
 
== Teoria formal ==
Seja Σ um conjunto finito e não vazio de símbolos (ou caracteres) chamado de o [[alfabeto]]. Uma cadeia sobre Σ é qualquer sequência finita de caracteres contidos em Σ.
* Se o alfabeto Σ = {0, 1}, então 0, 1, 01, 000001 e 101 são cadeias sobre o alfabeto Σ.
O comprimento ou [[cardinalidade]] da cadeia é a quantidade de caracteres utilizados para sua composição. À cadeia de comprimento [[zero]] dá-se o nome de [[cadeia vazia]] e é usualmente denotada na literatura pelos símbolos ''ε'' ou ''λ''.
* Se o alfabeto Σ = {0, 1}, então |00| = 2, |0101| = 4 e |''ε| = ''0.''''
O conjunto de todas as possíveis cadeias de tamanho ''n ''sobre um alfabeto Σ qualquer de tamanho é denotado por Σ<sup>''n''</sup>.
* Se o alfabeto Σ = {0, 1}, então Σ² = {00, 01, 10, 11}. Notar que Σ<sup>0</sup> = {ε} para qualquer alfabeto Σ.
O conjunto de todas as possíveis cadeias sobre Σ de qualquer tamanho é denotado por Σ*. Em termos de Σ<sup>''n''</sup>, Σ* = Σ<sup>''0''</sup> ∪ Σ<sup>''1''</sup> ∪ Σ<sup>''2''</sup>….
* Se o alfabeto Σ = {0, 1} então Σ* = {ε, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, …}.
Apesar do conjunto Σ* possuir infinitos elementos, todos os elementos de Σ* possuem comprimento finito.
 
Um conjunto de cadeias sobre um alfabeto Σ (isto é, qualquer sub-conjunto[[subconjunto]] de Σ*) é chamado umade [[linguagem formal]] sobre Σ.
 
=== Concatenação e sub-cadeias ===