<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt">
	<id>https://wiki.nivel-teorico.com/index.php?action=history&amp;feed=atom&amp;title=Cadeia_de_caracteres</id>
	<title>Cadeia de caracteres - Histórico de revisões</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nivel-teorico.com/index.php?action=history&amp;feed=atom&amp;title=Cadeia_de_caracteres"/>
	<link rel="alternate" type="text/html" href="https://wiki.nivel-teorico.com/index.php?title=Cadeia_de_caracteres&amp;action=history"/>
	<updated>2026-04-20T10:51:49Z</updated>
	<subtitle>Histórico de edições para esta página nesta wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://wiki.nivel-teorico.com/index.php?title=Cadeia_de_caracteres&amp;diff=3204&amp;oldid=prev</id>
		<title>Calimero0000: Criou nova página com &#039;{{Sem-fontes|data=fevereiro de 2011| angola=| arte=| Brasil=| ciência=| geografia=| música=| Portugal=| sociedade=|1=|2=|3=|4=|5=|6=}} Em programação e em [[lingu...&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.nivel-teorico.com/index.php?title=Cadeia_de_caracteres&amp;diff=3204&amp;oldid=prev"/>
		<updated>2013-04-23T20:33:37Z</updated>

		<summary type="html">&lt;p&gt;Criou nova página com &amp;#039;{{Sem-fontes|data=fevereiro de 2011| angola=| arte=| Brasil=| ciência=| geografia=| música=| Portugal=| sociedade=|1=|2=|3=|4=|5=|6=}} Em &lt;a href=&quot;/index.php?title=Programa%C3%A7%C3%A3o&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Programação (página não existe)&quot;&gt;programação&lt;/a&gt; e em [[lingu...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Sem-fontes|data=fevereiro de 2011| angola=| arte=| Brasil=| ciência=| geografia=| música=| Portugal=| sociedade=|1=|2=|3=|4=|5=|6=}}&lt;br /&gt;
Em [[programação]] e em [[linguagens formais]], uma &amp;#039;&amp;#039;&amp;#039;cadeia de caracteres&amp;#039;&amp;#039;&amp;#039; (também conhecida como &amp;#039;&amp;#039;&amp;#039;samblagem&amp;#039;&amp;#039;&amp;#039; ou &amp;#039;&amp;#039;&amp;#039;string&amp;#039;&amp;#039;&amp;#039;) é uma sequência ordenada de [[caractere]]s (símbolos) escolhidos a partir de um [[conjunto]] pré-determinado. Em programação, cada símbolo armazenado na memória é representado por um valor numérico. Uma [[variável (programação)|variável]] declarada com [[tipo de dado]] cadeia geralmente armazena um número pré-determinado de caracteres.&lt;br /&gt;
&lt;br /&gt;
== Teoria formal ==&lt;br /&gt;
Seja Σ um &amp;#039;&amp;#039;[[alfabeto]]&amp;#039;&amp;#039;, 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 &amp;#039;&amp;#039;0101&amp;#039;&amp;#039; é 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 &amp;#039;&amp;#039;ε&amp;#039;&amp;#039; ou &amp;#039;&amp;#039;λ&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
O conjunto de todas as cadeias sobre Σ de tamanho &amp;#039;&amp;#039;n&amp;#039;&amp;#039; é denotado por Σ&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt;. Por exemplo, se Σ = {0, 1}, então Σ² = {00, 01, 10, 11}. Note que Σ&amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt; = {ε} para qualquer alfabeto Σ. O conjunto de todas as cadeias sobre Σ de qualquer tamanho é denotado por Σ*. Em termos de Σ&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt;, &amp;lt;math&amp;gt;\Sigma^{*} = \bigcup_{n=0}^{\infty}\Sigma^{n}&amp;lt;/math&amp;gt;. 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.&lt;br /&gt;
&lt;br /&gt;
Um conjunto de cadeias sobre Σ (isto é, qualquer sub-conjunto de Σ*) é chamado uma [[linguagem formal]] sobre Σ.&lt;br /&gt;
&lt;br /&gt;
=== Concatenação e sub-cadeias ===&lt;br /&gt;
&amp;#039;&amp;#039;[[Concatenação]]&amp;#039;&amp;#039; é uma importante operação binária em Σ*. Para qualquer duas cadeias &amp;#039;&amp;#039;s&amp;#039;&amp;#039; e &amp;#039;&amp;#039;t&amp;#039;&amp;#039; em Σ*, sua concatenação é definida pela sequência de caracteres de &amp;#039;&amp;#039;s&amp;#039;&amp;#039; seguida pela sequência de caracteres em &amp;#039;&amp;#039;t&amp;#039;&amp;#039;, denotada por &amp;#039;&amp;#039;st&amp;#039;&amp;#039;. Por exemplo se Σ = {a, b, …, z}, &amp;#039;&amp;#039;s&amp;#039;&amp;#039; = &amp;lt;tt&amp;gt;bear&amp;lt;/tt&amp;gt; e &amp;#039;&amp;#039;t&amp;#039;&amp;#039; = &amp;lt;tt&amp;gt;hug&amp;lt;/tt&amp;gt;, então &amp;#039;&amp;#039;st&amp;#039;&amp;#039; = &amp;lt;tt&amp;gt;bearhug&amp;lt;/tt&amp;gt; e &amp;#039;&amp;#039;ts&amp;#039;&amp;#039; = &amp;lt;tt&amp;gt;hugbear&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A concatenação de cadeias é uma operação associativa, mas não comutativa. A cadeia vazia serve como um elemento identidade; par qualquer cadeia &amp;#039;&amp;#039;s&amp;#039;&amp;#039;, ε&amp;#039;&amp;#039;s&amp;#039;&amp;#039; = &amp;#039;&amp;#039;s&amp;#039;&amp;#039;ε = &amp;#039;&amp;#039;s&amp;#039;&amp;#039;. Portanto, o conjunto Σ* e a operação de concatenação formam um [[monóide]].&lt;br /&gt;
&lt;br /&gt;
A cadeia &amp;#039;&amp;#039;s&amp;#039;&amp;#039; é dita uma sub-cadeia (ou fator) de &amp;#039;&amp;#039;t&amp;#039;&amp;#039; se existem cadeias (possivelmente vazias) &amp;#039;&amp;#039;u&amp;#039;&amp;#039; e &amp;#039;&amp;#039;v&amp;#039;&amp;#039; de forma que &amp;#039;&amp;#039;t&amp;#039;&amp;#039; = &amp;#039;&amp;#039;usv&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Ordenação lexicográfica ===&lt;br /&gt;
Geralmente é necessário definir uma ordenação em um conjunto de cadeias. Se um alfabeto Σ possui uma [[relação de ordem]] (como a ordem alfabética) pode-se definir uma relação de ordem em Σ* chamada ordem lexicográfica. Note que como Σ é finito, é sempre possível definir uma ordenação em Σ e portanto em Σ*. Por exemplo, se Σ = {0, 1} e 0 &amp;lt; 1, então a ordenação lexicográfica em Σ* é ε &amp;lt; 0 &amp;lt; 00 &amp;lt; 000 &amp;lt; … &amp;lt; 011 &amp;lt; 0110 &amp;lt; … &amp;lt; 01111 &amp;lt; … &amp;lt; 1 &amp;lt; 10 &amp;lt; 100 &amp;lt; … &amp;lt; 101 &amp;lt; … &amp;lt; 111 …&lt;br /&gt;
&lt;br /&gt;
== Cadeia de caracteres como tipo de dado ==&lt;br /&gt;
Um [[tipo de dado]] &amp;#039;&amp;#039;cadeia de caracteres&amp;#039;&amp;#039; (referido em [[programação]] geralmente como &amp;#039;&amp;#039;string&amp;#039;&amp;#039;) é uma modelagem de uma cadeia formal de caracteres. São bastante usados em programação, sendo implementados em quase todas as [[linguagem de programação|linguagens de programação]]. Em algumas linguagens esse tipo é definido nativamente, em outras é um tipo composto, derivado.&lt;br /&gt;
&lt;br /&gt;
{{esboço-programação}}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Cadeia Caracteres}}&lt;br /&gt;
[[Categoria:Estruturas de dados]]&lt;br /&gt;
[[Categoria:Tipos de dados]]&lt;br /&gt;
[[Categoria:Linguagens formais]]&lt;/div&gt;</summary>
		<author><name>Calimero0000</name></author>
	</entry>
</feed>