<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.hlt.inesc-id.pt/~david/wiki/pt/index.php?action=history&amp;feed=atom&amp;title=Strings_vs._Vectores_de_Caracteres</id>
	<title>Strings vs. Vectores de Caracteres - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.hlt.inesc-id.pt/~david/wiki/pt/index.php?action=history&amp;feed=atom&amp;title=Strings_vs._Vectores_de_Caracteres"/>
	<link rel="alternate" type="text/html" href="https://www.hlt.inesc-id.pt/~david/wiki/pt/index.php?title=Strings_vs._Vectores_de_Caracteres&amp;action=history"/>
	<updated>2026-05-04T12:39:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://www.hlt.inesc-id.pt/~david/wiki/pt/index.php?title=Strings_vs._Vectores_de_Caracteres&amp;diff=1630&amp;oldid=prev</id>
		<title>Root at 13:18, 27 May 2005</title>
		<link rel="alternate" type="text/html" href="https://www.hlt.inesc-id.pt/~david/wiki/pt/index.php?title=Strings_vs._Vectores_de_Caracteres&amp;diff=1630&amp;oldid=prev"/>
		<updated>2005-05-27T13:18:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Uma ''string'' é um vector de caracteres '''terminado''' por &amp;lt;code&amp;gt;'\0'&amp;lt;/code&amp;gt;. Um vector de caracteres genérico não assume nada sobre o seu conteúdo: em particular, não define caracteres especiais.&lt;br /&gt;
&lt;br /&gt;
A confusão dos dois conceitos é fonte de problemas. Veja-se o seguinte exemplo.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;u&amp;gt;'''Ficheiro vecs.c'''&amp;lt;/u&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;string.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
  main() {&lt;br /&gt;
    char a[] = { 'a', 'b', 'c'&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;, '\0'&amp;lt;/font&amp;gt; };&lt;br /&gt;
    char b[] = &amp;quot;abc&amp;quot;;&lt;br /&gt;
    printf(&amp;quot;%s %d %d\n&amp;quot;, a, strlen(a), sizeof(a));&lt;br /&gt;
    printf(&amp;quot;%s %d %d\n&amp;quot;, b, strlen(b), sizeof(b));&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Se, no código acima, a parte a vermelho for incluÃ­da (terminador), então &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; serão idÃªnticos. Caso contrário, nada garante que a seguir a &amp;lt;code&amp;gt;'c'&amp;lt;/code&amp;gt; (em &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;) exista um &amp;lt;code&amp;gt;'\0'&amp;lt;/code&amp;gt;. Os resultados podem ser surpreendentes... (ver exemplo abaixo).&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;u&amp;gt;'''Compilação e execução'''&amp;lt;/u&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
  '''prompt%''' gcc -ansi -pedantic -Wall vecs.c -o vecs&lt;br /&gt;
  '''prompt%''' ./vecs&lt;br /&gt;
  abc&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;@Ã”Ã¯Ã¿Â¿Ã¯Ã¿Â¿Ã˜O@ @Ã”Ã¯Ã¿Â¿Â¨Ã¯Ã¿Â¿Â­@&amp;lt;/font&amp;gt; 33 3&lt;br /&gt;
  abc 3 4&lt;/div&gt;</summary>
		<author><name>Root</name></author>
	</entry>
</feed>