Função Stol() em C++

Funcao Stol Em C

C++ é uma das linguagens de programação mais populares e antigas usadas para o desenvolvimento de aplicativos de alto desempenho. É usado entre programadores altamente experientes e desenvolvedores iniciantes. É usado principalmente no desenvolvimento de jogos e é uma opção ideal para o desenvolvimento de sistemas operacionais. Ao escrever código na linguagem C++, você pode se deparar com a conversão de dados de um tipo para outro. Neste artigo, você aprenderá a converter uma string em um inteiro longo. É muito difícil converter uma string em qualquer outro formato. No entanto, a linguagem de programação C++ fornece uma maneira rápida e eficiente de converter strings em inteiros.

Stol Função em C++

O stol é uma função interna do C++ fornecida na biblioteca std. Ele converte strings em números inteiros longos. Ele converte o conteúdo da string em um número inteiro da base especificada e retorna um valor inteiro longo. São necessários três parâmetros, um é a string de entrada, o segundo é o parâmetro do objeto e o terceiro é a base numérica. A sintaxe da função stol é dada abaixo, dê uma olhada:





A função stol recebe três parâmetros: input_string, size e base. O “input_string” representa a string de entrada que precisa ser convertida em um número inteiro longo.



O parâmetro “size” representa o objeto do tipo size_t que carrega a próxima posição do caractere na string de entrada após o valor numérico. Pode ser um ponteiro nulo se não for necessário usá-lo.

O terceiro parâmetro, o parâmetro “base” representa a base na qual a string precisa ser interpretada. Por exemplo, se a base “2” for fornecida, a string será interpretada como o número inteiro de base 2. O valor padrão do parâmetro base é 10 e se 0 for fornecido, o valor base será determinado pelo formato na sequência. A função stol retorna o número inteiro longo que representa o valor int de uma determinada string.

Agora, vamos explorar alguns exemplos para entender como a função stol funciona em C++.



Exemplo 1

Neste exemplo, forneceremos strings decimais e hexadecimais para verificar como a função stol as converte em números inteiros decimais e hexadecimais.

O “dec = 123456789” é uma string decimal e convertida em um inteiro longo usando a função stol stol(dec,&size). Observe que a base não é fornecida na função como um parâmetro de entrada que, como resultado, usa a base 10 padrão para converter a string em um número decimal. No entanto, para converter a string de um número hexadecimal para um número decimal, a base 16 é fornecida como o parâmetro de entrada stol(hex, nullptr, 16). Como sabemos, a base 16 representa um número hexadecimal.

#include

#include

#include

int a Principal ( )

{

padrão :: corda dezembro = '123456789' ;
padrão :: corda hexágono = 'a2bf3c' ;
padrão :: corda :: Tamanho Tipo Tamanho ;
grandes lidec = padrão :: tabela ( dezembro, & Tamanho ) ;
grandes lihex = padrão :: tabela ( hex, nullptr , 16 ) ;
padrão :: cout << 'Inserir string decimal' << dezembro << ' convertido para long int ' << lidec << ' \n ' ;
padrão :: cout << 'Inserir string hexadecimal ' << hexágono << ' convertido para long int ' << lihex << ' \n ' ;
Retorna 0 ;


}

Aqui está a seguinte saída. Observe que a string decimal “123456789” foi convertida em inteiro longo decimal “123456789”. Enquanto a string hexadecimal “a2bf3c” converteu para “10665788” número hexadecimal. Aqui estão as etapas necessárias que você pode seguir para saber como a conversão é feita pela função stol:

( A2BF3C ) ₁₆ = ( 10 × 16 ) + ( dois × 16 ) + ( onze × 16 ³ ) + ( quinze × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁₀

Exemplo # 2

Neste exemplo, converteremos um número binário usando a função stol. Vamos ver o código abaixo e entender o funcionamento do código. O “1010110110” é fornecido como a string de entrada e a base 2 é fornecida como o parâmetro de base de entrada stol(bin,&size, 2), representando o número em formato binário. A função stol converterá o número binário em um número decimal seguindo estas etapas:

( 1010110110 ) = ( 1 × dois ) + ( 0 × dois ) + ( 1 × dois ) + ( 0 × dois ) + ( 1 × dois ) + ( 1 × dois ) + ( 0 × dois ³ ) + ( 1 × dois ² ) + ( 1 × dois ¹ ) + ( 0 × dois ) = ( 694 ) ₁₀ #include

#include

#include

int a Principal ( )

{

padrão :: corda caixa = '1010110110' ;
padrão :: corda :: Tamanho Tipo Tamanho ;
grandes libin = padrão :: tabela ( caixa, & Tamanho, dois ) ;
padrão :: cout << 'Inserir string binária' << caixa << ' convertido para long int ' << libin << ' \n ' ;
Retorna 0 ;


}

Como você pode ver, a função stol retornou o mesmo resultado que o processo geral de conversão de binário para decimal.

Exemplo # 3

Neste exemplo, veremos o que acontece se testarmos a função stol com entrada inválida. Uma string de vários caracteres será fornecida à função stol e 0 será fornecido como o valor base para que a função determine a base da string automaticamente. Aqui está o código:

Um conjunto de caracteres é fornecido como uma string de entrada que não é determinada por nenhum valor base, ou seja, 10, 16, 2, etc., portanto, a função retornará um valor de erro.

#include

#include

#include

int a Principal ( )

{

padrão :: corda chr = 'abcdefgh' ;

padrão :: corda :: Tamanho Tipo Tamanho ;
grandes str = padrão :: tabela ( chr, nullptr , 0 ) ;
padrão :: cout << 'Inserir cadeia de caracteres' << chr << ' convertido para long int ' << str << ' \n ' ;
Retorna 0 ;


}

Veja a saída abaixo. Observe que o compilador gerou uma exceção “argumento_inválido”, pois a função não atende a strings que não podem ser determinadas com nenhum valor base.

Exemplo # 4

Neste exemplo, forneceremos uma combinação de entradas válidas e inválidas para ver o resultado da função stol().

A string de entrada é uma combinação de caracteres válidos e inválidos, “123xf25”. O “0” isg é fornecido como base de entrada para que a função determine a base da string de entrada automaticamente com base no tipo de caracteres.

#include

#include

#include

int a Principal ( )

{

padrão :: corda chr = '123xf25' ;
padrão :: corda :: Tamanho Tipo Tamanho ;
grandes str = padrão :: tabela ( chr, nullptr , 0 ) ;
padrão :: cout << 'String de entrada' << chr << ' convertido para long int ' << str << ' \n ' ;
Retorna 0 ;


}

Aqui está a saída que mostra o funcionamento da função stol com uma combinação de entrada válida e inválida:

Observe que a função converteu o “123” no número decimal “123” e descartou o restante da string, pois recebeu uma entrada inválida “x”. A string após o caractere “x” não é convertida pela função stol, retornando apenas os primeiros caracteres da string como long int.

Conclusão

Neste post, exploramos a função stol da linguagem de programação C++. Com a ajuda de alguns exemplos úteis e simples, aprendemos como a função stol funciona com diferentes tipos de entradas. A função stol recebe três parâmetros, a string de entrada que deve ser convertida, um parâmetro de tamanho que representa a posição da função na string e o valor base que representa a base da string de entrada. Ele retorna o valor int longo da string de entrada.