String - O que é? Para que serve? Como funciona? E como se constrói?

Pois é pll, uma , ou melhor, várias perguntas parvas, mas para um iniciante como eu faz todo o sentido, acreditem :slight_smile:

Já tenho lido várias coisas sobre o tema, mas ainda não consegui ficar com uma ideia minimamente clara acerca disto.

Alguém pode "descomplexibilizar" este assunto?

Não é que eu seja loiro, mas uma linguagem o menos técnica possível ajuda, do tipo:

Resta-me dizer que de linguagem de programação tenho 1/2 dúzia de dias... o mais próximo da programação que estive é na utilização de uma formulas de excel XD

Aguardo,
NJPinheiro

E o que pretendes ao certo?

Para alguem que nao sabe programacao, nao devias estar mais preocupado com funcoes, portas de entrada/saida em vez de Strings?

bubulindo:
E o que pretendes ao certo?

uma ajuda para perceber o conceito de uma string :~

bubulindo:
Para alguem que nao sabe programacao, nao devias estar mais preocupado com funcoes, portas de entrada/saida em vez de Strings?

Sim, ainda tenho muito para aprender, mas em relação a funções as básicas, (Digital I/O - Analog I/O) já tenho umas luzes.

Ainda sei muito pouco, (também outra coisa não seria de esperar....isto é uma área que requer muito estudo), mas já sei, (ou julgo saber), o que é um Arduino para poder começar a "brincar" com um...agora procuro saber mais para poder avançar para um Projecto.

Em primeiro lugar 2 coisas. Há que fazer a distinção entre:
-"string";

  • objecto "String".

O Arduino é programado em C/C++. Quer isto dizer que se podem utilizar recursos das duas linguagens de programação. A linguagem C++ é uma linguagem de programação orientada a objecto e permite a criação de objecto. A linguagem C não. Sendo assim o objecto "String" é um recurso apenas disponível em C++. No entanto em C também é possível utilizar "strings".

Sendo assim, e fazendo esta distinção, uma string (as normais, as da linguagem C) são um conjunto de caracteres, que podem conter qualquer caracter (numérico, alfanumérico, sinais de pontuação, etc., no fundo qualquer caracter definido por um valor de 8 bits) e que termina do um caracter especial (o caracter NULO (ou NULL em inglês), com o código ASCII 0x00 e que normalmente é definido em C como '\0'.

Como não sou grande utilizador de C++, não consigo dar grandes pormenores do que é um objecto String, no entanto, nos recursos do Arduino há muita informação sobre esse tema:

Pode começar por aqui e navegar para as várias referências e vários exemplos.

Basicamente é possível fazer o mesmo que com as strings "normais" da linguagem C, mas de forma bastante mais fácil.

Em relação às questões (neste caso para o C básico):

O que é?

São conjuntos de caracteres.

Para que serve?

Guardar texto.

Como funciona?

Muito basicamente:

char nome[50];   // cria uma string com capacidade para 50 caraceres.

strcpy(nome, "Arduino"); // guarda na string o nome "Luís" - seria o mesmo que fazer noutro tipo nome = "Arduino"

if (strcmp(nome, "Arduino") == 0)   // comparação de strings - seria o mesmo que fazer if (nome == "Arduino"), noutro tipo de variáveis

strcpy(nome, "");   // uma forma de apagar a string

char nome[50] = "Arduino";   // outra forma de criar a string

char nome[]="Arduino"; // ainda outra forma de criar a string

E como se constrói?
Neste caso não se destrói, mas pode ser apagada, por exemplo, da forma que indiquei antes.

Penso que as questões estavam mais direccionadas para o objecto String do C++, mas aí não consigo ajuda (e não gosto de usar é isto que estou habituado a fazer e é isto que eu faço). No tempo que estou no fórum, já vi várias vezes utilizadores mais experientes a desaconselharem o uso do objecto String.