Strings

1. O que é uma string em C++?

Em C++, uma string é uma sequência de caracteres que pode ser manipulada como um único objeto. Existem duas formas principais de trabalhar com strings:

  • Array de caracteres (estilo C): menos flexível, exige controle manual do tamanho e do caractere nulo.
  • Classe std::string (estilo C++): mais moderna, fácil de usar e recomendada para a maioria dos casos.

2. Declarar e inicializar Strings

Usar std::string

Inclua o cabeçalho <string> e use o namespace std:

#include <iostream>
#include <string>
using namespace std;

int main() {
string s1 = "Olá, mundo!";
string s2("C++ é poderoso");
string s3; // string vazia
cout << s1 << endl;
cout << s2 << endl;
return 0;
}

Podemos inicializar uma string vazia e atribuir valor depois:

string nome;
nome = "Ana";

Também é possível copiar strings:

string a = "texto";
string b(a); // b recebe o valor de a

3. Entrada e Saída de Strings

Ler uma palavra (até espaço)

string palavra;
cin >> palavra; // lê até o primeiro espaço

Ler uma linha inteira (com espaços)

string frase;
getline(cin, frase); // lê até o ENTER, aceita espaços

4. Operações Básicas com Strings

Concatenar strings

Use o operador + ou +=:

string nome = "Ana";
string sobrenome = "Silva";
string nomeCompleto = nome + " " + sobrenome;
cout << nomeCompleto << endl;

Aceder caracteres individuais

Cada caractere pode ser acessado como em um array:

string palavra = "C++";
cout << palavra[0] << endl; // 'C'

Ou usando o método .at() (com verificação de limites):

cout << palavra.at(1) << endl; // '+'

Tamanho da string

string texto = "Exemplo";
cout << texto.size() << endl; // 7

5. Exemplo Completo

#include <iostream>
#include <string>
using namespace std;

int main() {
string nome, sobrenome, frase;

cout << "Digite o seu nome: ";
cin >> nome;

cout << "Digite o seu apelido: ";
cin >> sobrenome;

string nomeCompleto = nome + " " + sobrenome;
cout << "Nome completo: " << nomeCompleto << endl;

cin.ignore(); // Limpa o buffer antes de getline

cout << "Digite uma frase: ";
getline(cin, frase);

cout << "Frase digitada: " << frase << endl;
cout << "A frase tem " << frase.size() << " caracteres." << endl;

return 0;
}

6. Dicas

  • Inclua sempre <string> ao usar std::string.
  • Prefira std::string ao invés de arrays de caracteres para maior segurança e facilidade.
  • Use getline para ler textos com espaços.