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 usarstd::string. - Prefira
std::stringao invés de arrays de caracteres para maior segurança e facilidade. - Use
getlinepara ler textos com espaços.
