UFLA

🎓 Aula 08

Strings e uso do getline()

Prof. Paulo Rettore

Universidade Federal de Lavras

GAC124 — Introdução aos Algoritmos

🎯 Texto em C++

Uma string representa uma sequência de caracteres. Ela é prática para nomes, frases e mensagens.

Palavra

string nome = "Ana";

Frase

Também pode conter espaços.

Caracteres

Cada posição tem um índice.

Inclua <string> e use std::string ou using namespace std.

🧱 Declaração e operações básicas

string nome = "Ana";
string sobrenome = "Silva";

string completo = nome + " " + sobrenome;
cout << completo;

Tamanho

completo.size()

Índice

completo[0]

Concatenação

texto1 + texto2

⌨️ Cin lê até o espaço

string nome;
cin >> nome;

Se a entrada for Paulo Rettore, o cin lê apenas Paulo.

Para ler uma linha inteira, use getline().

📖 Getline lê a linha inteira

string frase;
getline(cin, frase);
cout << frase;

getline() lê até a quebra de linha e preserva os espaços internos.

⚠️ O problema do \n no buffer

int idade;
string nome;

cin >> idade;
getline(cin, nome); // pode ler vazio

Depois de cin >>, a quebra de linha pode permanecer no buffer. O getline() encontra essa quebra imediatamente.

🛠️ A correção com cin.ignore()

int idade;
string nome;

cin >> idade;
cin.ignore();
getline(cin, nome);

A quebra de linha pendente é descartada antes da leitura do nome completo.

🔎 Percorrer uma string

string palavra = "algoritmo";
int vogais = 0;

for (int i = 0; i < palavra.size(); i++) {
    char c = palavra[i];
    if (c == 'a' or c == 'e' or c == 'i' or
        c == 'o' or c == 'u')
        vogais++;
}

Uma string pode ser percorrida como uma sequência de caracteres.

🧩 Desafio: cadastro simples

Leia a idade e o nome completo de uma pessoa. Depois, mostre uma mensagem de apresentação.

  1. Leia a idade com cin.
  2. Use cin.ignore().
  3. Leia o nome completo com getline().

Teste com nomes que tenham espaços para verificar se sua solução funciona.

🧩 Prática em aula

Leia um nome completo e conte quantas letras a ou A aparecem.

Gabarito orientador: Depois de uma leitura com cin, use cin.ignore() quando necessário e percorra a string com um laço.

📚 Referências e materiais

Use estas fontes para consultas pontuais depois da aula:

Os slides completos, o Campus Virtual e o DREDD continuam sendo as fontes principais da disciplina.

📌 Resumo da aula

  • string armazena textos.
  • cin lê uma palavra; getline() lê uma linha inteira.
  • Após cin >>, descarte a quebra de linha quando necessário.
  • Strings podem ser indexadas e percorridas.

PRÓXIMA AULA

⏭️ Próxima aula

Ponteiros, alocação dinâmica, busca binária e recursão

Prof. Paulo Rettore

GAC124 — Introdução aos Algoritmos