Às vezes, precisamos tratar dados adquiridos, ou pela internet, ou pela porta serial, ou qualquer outra maneira.
Uma String é nada menos que uma matriz de 1 linha por várias colunas (ou vários caracteres).
No Arduino, você pode declarar uma variável como String e não precisar ler caractere a caractere como em muitas linguagens de programação, ficando assim mais fácil de trabalhar e programar.
No Arduino, você pode declarar uma variável como String e não precisar ler caractere a caractere como em muitas linguagens de programação, ficando assim mais fácil de trabalhar e programar.
Por exemplo, ao utilizar a Serial.read() o dado vem um de cada vez, isto é, caractere a caractere. Para ficar mais fácil de tratar esses dados, guardamos em uma matriz de array e depois colocamos em uma variável String.
Cuidado que todos os caracteres da tabela ASCII são guardados dentro da string! Por exemplo o "enter" (new line - '\n'). Então é necessário colocar o nulo ('\0') no final de cada String.
Descrição:
Strings de texto podem ser representadas de duas formas. Você pode utilizar o tipo de variável “String”, que é parte do Arduino desde a versão 0019, ou você pode fazer uma string a partir de um array de variáveis do tipo “char” e adicionar a terminação nula.
Este artigo descreve o último método. Para maiores detalhes sobre o objeto String, que permite maiores funcionalidades (e também maior custo de memória), veja o artigo mais abaixo.
Exemplos:
Todas as formas abaixo são declarações válidas de strings.
- char Str1[15];
- char Str2[8] = {'a','r','d','u','i','n','o'};
- char Str3[8] = {'a','r','d','u','i','n','o','\0'};
- char Str4[ ] = "arduino";
- char Str5[8] = "arduino";
- char Str6[15] = "arduino";
Outra forma de criar uma String de texto é:
- String Str7 = "Hello World!";
Possibilidades para declarar strings:
- Declare uma matriz de caracteres sem inicializá-lo como em Str1.
- Declare uma matriz de chars (com um caractere extra) e o compilador adicionará o caractere nulo requerido, como em Str2
- Adicione explicitamente o caractere nulo, Str3
- Inicialize com uma constante de cadeia entre aspas; o compilador irá dimensionar a matriz para ajustar a constante de seqüência de caracteres e um caractere nulo de terminação, Str4.
- Inicialize a matriz com um tamanho explícito e uma constante de string, Str5.
- Inicialize a matriz, deixando espaço extra para uma string maior, Str6.
Terminação nula
Geralmente, as seqüências de caracteres são finalizadas com um caractere nulo (código ASCII 0). Isso permite que funções (como Serial.print ()) digam onde está o final de uma string. Caso contrário, eles continuariam lendo bytes subseqüentes de memória que não fazem parte da string.
Isso significa que sua string precisa ter espaço para mais um caractere do que o texto que você deseja conter. É por isso que Str2 e Str5 precisam ter oito caracteres, apesar de "arduino" ter apenas sete - a última posição é preenchida automaticamente com um caractere nulo. Str4 será automaticamente dimensionado para oito caracteres, um para o nulo extra. Na Str3, incluímos explicitamente o caractere nulo (escrito '\ 0').
Observe que é possível ter uma string sem um caractere nulo final (por exemplo, se você tivesse especificado o comprimento de Str2 como sete em vez de oito). Isso interromperá a maioria das funções que usam strings, por isso você não deve fazer isso intencionalmente. Se você notar algo se comportando de forma estranha (operando em caracteres que não estão na string), no entanto, esse pode ser o problema.
Aspas simples ou aspas duplas?
As strings são sempre definidas entre aspas duplas ("Abc") e os caracteres são sempre definidos entre aspas simples ('A').
Operações com Strings:
- Concatenar
- char Str9 = Str5 + Str4;