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++?

Diferente da linguagem C, onde textos são vetores de caracteres complexos de manipular, o C++ possui o tipo string (da biblioteca <string>). Ele funciona como um objeto moderno, permitindo atribuir, juntar e comparar textos de forma muito simples!


📖 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.cpp na pasta src/:
#include <iostream>
#include <string> // Biblioteca necessária para usar string
 
using namespace std;
 
int main() {
    // Declarando uma string de forma simples!
    string nome;
 
    cout << "Digite o nome do Bruxo: ";
    // O cin lê uma string, mas para no primeiro espaço.
    cin >> nome; 
 
    cout << "Bem-vindo, Bruxo " << nome << " da Escola do Lobo!" << endl;
 
    return 0;
}

🕹️ Como Executar e Testar no VS Code

  1. Abra o terminal integrado.
  2. Compile: g++ nome_bruxo.cpp -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 em C++

Em C++, a string gerencia a memória automaticamente para você!

graph LR
    A["'G'"] --- B["'e'"] --- C["'r'"] --- D["'a'"] --- E["'l'"] --- F["'t'"]

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

O cin >> para de ler no primeiro espaço. Para ler um nome completo (como “Geralt de Rivia”), usamos a função getline(cin, variavel). Crie um programa chamado nome_completo.cpp que use essa técnica para ler e exibir o nome completo de um bruxo.


🔑 Gabarito de Código

Prática 1: nome_completo.cpp

#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
    string nome_completo;
 
    cout << "Digite o nome completo do Bruxo: ";
    // Limpa o buffer antes de ler a linha (boa prática em C++)
    cin.ignore(); 
    // Lê toda a linha até que o usuário aperte Enter
    getline(cin, nome_completo); 
 
    cout << "Registrado no Animus: " << nome_completo << endl;
 
    return 0;
}

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

(Siga o padrão estabelecido no Guia)


Capitulo Anterior | Proximo Capitulo