Capítulo 07: Strings (Cadeias de Caracteres) 🐺⚔️

Neste capítulo, vamos aprender a trabalhar com textos na linguagem C usando as Strings, com o tema The Witcher!


📖 O que são Strings em C?

Em C, não existe um tipo de dado primitivo chamado “String” (como em Java ou Python). Uma string em C é simplesmente um vetor de caracteres (char) que termina com um caractere especial nulo \0.


📖 Exemplo Guiado: Nome do Bruxo

Vamos aprender a declarar uma string, ler um nome do teclado e exibi-lo.

  1. Crie o arquivo nome_bruxo.c na pasta src/:
#include <stdio.h>
 
int main() {
    // Declarando uma string com capacidade para 30 caracteres
    char nome[30];
 
    printf("Digite o nome do Bruxo: ");
    // O %s lê uma string, mas para no primeiro espaço.
    // O scanf para strings não precisa do '&'!
    scanf("%s", nome); 
 
    printf("Bem-vindo, Bruxo %s da Escola do Lobo!\n", nome);
 
    return 0;
}

🕹️ Como Executar e Testar no VS Code

  1. Abra o terminal integrado.
  2. Compile: gcc nome_bruxo.c -o nome_bruxo
  3. Execute: ./nome_bruxo
  4. Digite Geralt e pressione Enter.

Resultado Esperado:

Digite o nome do Bruxo: Geralt
Bem-vindo, Bruxo Geralt da Escola do Lobo!

📊 Ilustração Visual: String na Memória

Veja como a string “Geralt” é armazenada. O \0 avisa o C onde o texto termina!

graph LR
    subgraph Vetor de Char
    A['G'] --- B['e'] --- C['r'] --- D['a'] --- E['l'] --- F['t'] --- G['\0']
    end

🛠️ Prática Obrigatória 1: Nome Completo (com espaços)

O scanf("%s") para de ler no primeiro espaço. Para ler um nome completo (como “Geralt de Rivia”), usamos a função scanf(" %[^\n]s", variavel). Crie um programa chamado nome_completo.c que use essa técnica para ler e exibir o nome completo de um bruxo.


🔑 Gabarito de Código

Prática 1: nome_completo.c

#include <stdio.h>
 
int main() {
    char nome_completo[50];
 
    printf("Digite o nome completo do Bruxo: ");
    // Lê tudo até que o usuário aperte Enter
    scanf(" %[^\n]s", nome_completo); 
 
    printf("Registrado no Animus: %s\n", nome_completo);
 
    return 0;
}

📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

(Siga o padrão estabelecido no Guia)


Capitulo Anterior | Proximo Capitulo