0Pricing
C++ Academy · Aula

Conversões de cadeias: to_string e stoi

Converta com segurança entre cadeias e tipos numéricos usando std::to_string, std::stoi e std::stod.

Conversões de cadeias: to_string e stoi é uma aula grátis de C++ Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C++ Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C++ Academy inclui 4 aulas no total.

Por que as conversões de cadeias de caracteres são importantes

Você precisa converter constantemente números em texto e texto em números — para entrada do usuário, arquivos de configuração, JSON, URLs e registros.

std::to_string

std::to_string converte qualquer tipo numérico integrado em uma cadeia de caracteres. Ela usa a formatação padrão.

#include <string>

std::string a = std::to_string(42);     // "42"
std::string b = std::to_string(-7);     // "-7"
std::string c = std::to_string(3.14);   // "3.140000"

Formatação padrão de ponto flutuante

to_string aplicado a um double usa seis casas decimais. Para ter controle preciso, use std::stringstream com std::fixed e std::setprecision, ou std::format no C++20.

std::stoi: cadeia de caracteres para int

Analise um inteiro com std::stoi. Ele ignora os espaços em branco iniciais e para no primeiro caractere que não seja um dígito.

int n = std::stoi("42");        // 42
int m = std::stoi("  -7abc");   // -7 (stops at 'a')

Lendo a posição final

Passe um ponteiro para receber o índice onde a análise parou — isso é útil para analisar cadeias de caracteres mistas.

std::string s = "42px";
size_t pos;
int n = std::stoi(s, &pos);
std::cout << pos;  // 2  (parsed "42", stopped at 'p')

Stoi lança exceção para entrada inválida

Se nenhum dígito for encontrado, stoi lança std::invalid_argument. Se o número ultrapassar os limites, ele lança std::out_of_range.

try {
    int x = std::stoi("not_a_number");
} catch (const std::invalid_argument& e) {
    std::cout << "Parse failed";
}

Conversões de base

O terceiro argumento seleciona a base (2–36). Passe 0 para detectá-la automaticamente a partir do prefixo.

int hex = std::stoi("ff", nullptr, 16);    // 255
int bin = std::stoi("1010", nullptr, 2);   // 10
int auto_detect = std::stoi("0xff", nullptr, 0); // 255

stol stoll stoul stoull

Variantes para os outros tipos inteiros:

  • std::stol — long
  • std::stoll — long long
  • std::stoul — unsigned long
  • std::stoull — unsigned long long

stof stod stold

Variantes de ponto flutuante para float, double e long double.

double d = std::stod("3.14159");
float f = std::stof("2.71");

C++17 std::from_chars: sem exceções

std::from_chars analisa sem lançar exceções. Ele retorna uma estrutura com ec (código de erro) e ptr (posição final da análise) — é a opção preferida em laços críticos de desempenho.

#include <charconv>
std::string s = "42";
int val;
auto result = std::from_chars(s.data(), s.data() + s.size(), val);
if (result.ec == std::errc{}) {
    // success
}

C++17 std::to_chars: sem alocação

É o inverso de from_chars: escreve um número em um buffer sem fazer alocações. É a conversão mais rápida disponível na biblioteca padrão.

Verificação rápida

Qual exceção std::stoi("abc") lança?

Recapitulação

std::to_string converte números em cadeias de caracteres; std::stoi e funções semelhantes analisam cadeias de caracteres para obter números. Ambas lançam exceções em caso de falha — use std::from_chars para uma análise de alto desempenho sem exceções.

Perguntas Frequentes

A aula “Conversões de cadeias: to_string e stoi” é grátis?

Sim — o texto completo de “Conversões de cadeias: to_string e stoi” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C++ Academy, atualize para CoddyKit PRO. O curso de C++ Academy inclui 4 aulas no total.

O que vou aprender em “Conversões de cadeias: to_string e stoi”?

Converta com segurança entre cadeias e tipos numéricos usando std::to_string, std::stoi e std::stod. Você pratica C++ Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C++ Academy?

Nenhuma experiência prévia é necessária. C++ Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Conversões de cadeias: to_string e stoi”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C++ Academy?

Sim. Cada aula de C++ Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. std::string versus matrizes de caracteres no estilo C
  2. Operações com cadeias: concatenação, substr, busca e substituição
  3. Fluxo de cadeias stringstream para análise
  4. Conversões de cadeias: to_string e stoi
← Voltar para C++ Academy