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.
- Crie o arquivo
nome_bruxo.cppna pastasrc/:
#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
- Abra o terminal integrado.
- Compile:
g++ nome_bruxo.cpp -o nome_bruxo - Execute:
./nome_bruxo - Digite
Geralte 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)