Em C, não existe um tipo de dado específico para "frases" ou "palavras" como em outras linguagens. Em vez disso, strings são tratadas como vetores de caracteres. Isso significa que cada letra (ou caractere) de uma palavra ou frase é armazenada em uma posição individual desse vetor.
O segredo para o C saber onde uma string termina é o caractere nulo, representado por \0. Ele é como um "ponto final" invisível que marca o fim da sequência de caracteres.
<aside> ➡️
Em C, strings são vetores de caracteres, terminados por \0 (nulo).
</aside>
Imagine a string "Hello" na memória. Ela seria armazenada assim:
flowchart LR
A["H"] --> B["e"] --> C["l"] --> D["l"] --> E["o"] --> F["\0"]
Cada caractere ocupa uma "caixinha" na memória, e a última "caixinha" sempre guarda o \0.
Para criar um espaço na memória para sua string, você precisa declará-la como um vetor de caracteres. A sintaxe é simples:
Sintaxe
char nome_da_string[tamanho_maximo];
O tamanho_maximo define quantas "caixinhas" esse vetor terá. Lembre-se: uma dessas "caixinhas" será sempre para o caractere nulo \0.
Exemplo
char mensagem[20]; // Pode armazenar até 19 caracteres úteis + o '\0'
char nome[50]; // Pode armazenar até 49 caracteres úteis + o '\0'
No exemplo de mensagem[20], reservamos 20 bytes de memória. Se você tentar armazenar mais de 19 caracteres (excluindo o \0), ocorrerá um estouro de buffer, que pode levar a erros no seu programa.