Stoll C ++

Stoll C ++

Se necesita convertir un tipo de datos en otro para muchos propósitos diferentes. Y, si tiene algunas funciones integradas útiles disponibles, puede convertir fácilmente los datos de un tipo a otro. El lenguaje de programación C ++ ofrece una lista de varias funciones incorporadas que pueden usarse para conversiones de tipo de datos. Este artículo está diseñado para aprender una de esas funciones de conversión. Aquí, ilustraremos el funcionamiento de la función Stoll del lenguaje C ++.

¿Qué es la función Stoll en el lenguaje de programación de C ++??

La función Stoll es una función incorporada C ++ proporcionada por la biblioteca estándar de C ++ para convertir una cadena en una larga larga int. Toma la cadena de entrada, calcula su largo valor de larga y devuelve el valor calculado. Establece el puntero en el primer carácter de la cadena, iterando a través de cada carácter incremento por uno y alcanzando el último personaje.

Sintaxis de la función Stoll

La sintaxis del Stoll es la siguiente:

La función Stoll toma tres parámetros: cadena, índice y base. La cadena de entrada que se convertirá en un valor entero está contenido en el parámetro "cadena". El parámetro "índice" es un puntero a un objeto que se utiliza para rastrear la posición del siguiente carácter. Puede ser un puntero nulo cuando no es necesario. El valor base en el que se analizará la cadena se almacena en el parámetro final, llamado "base". Por defecto, el valor base es 10, y el valor base 0 determina la base por formato de la cadena. Devuelve el valor entero convertido en forma de larga larga int. Comprendamos el funcionamiento de Stoll con los ejemplos proporcionados a continuación:

Ejemplo 1

El primer ejemplo de la función Stoll ilustrará la función básica de la función Stoll. Aquí, se proporciona un programa simple y fácil para que no tenga problemas para comprender la función. Consulte el siguiente código y comprenda las líneas de código paso a paso:

#incluir
usando el espacio de nombres STD;
int main ()

larga larga int d, h, b;
cadena dec = "123456";
cadena hex = "ffffff";
cadena bin = "101010";
d = Stoll (dec, nullPtr, 10);
h = Stoll (hex, nullptr, 16);
b = Stoll (bin, nullptr, 2);
cout << dec<<" **Decimal conversion** " << d <cout <cout << bin<<" **Binary conversion** " << b <regresar 0;

El programa comienza con el archivo de encabezado, que incluye todas las utilidades de la biblioteca estándar requeridas para un programa general de C ++. El "Uso de NamesSpace STD"; le permite incluir la función de entrada y salida estándar para realizar una determinada tarea. Todo el programa está escrito en la función principal.

Aquí, se declaran las variables y se les asignan valores. Las cuerdas que deben transformarse se almacenan en las variables "dec", "hex" y "contenedor". Las variables D, H y B sostendrán la cadena convertida en forma de largo int.

Aquí, los parámetros se pasan a la función Stoll. Para convertir la cadena decimal, se proporciona la base 10. Para convertir la cadena hexadecimal, se proporciona la base 16, y para convertir la cadena binaria, se proporciona la base 2.

Usando la instrucción Cout, cada cadena y sus valores enteros convertidos se imprimen. La declaración de retorno 0 se agrega al final del programa para garantizar que la ejecución se haya realizado con éxito. Es una declaración opcional que se puede omitir.

Revisemos cada cadena convertida en la salida proporcionada a continuación:

Ejemplo 2

Probemos la función Stoll con entrada no válida. El compilador arroja un error o plantea una excepción si se proporciona una entrada no válida a la función Stoll. Si la ejecución no se puede realizar, entonces el compilador lanzará una excepción de argumento no válido. Si la conversión no se puede realizar debido al valor de entrada fuera de rango, entonces el compilador lanzará la excepción fuera de rango. Entendamos todo este escenario con un ejemplo simple:

#incluir
usando el espacio de nombres STD;
int main ()
cadena str = "abcd!~ $#@de ";
intentar
cout << stoll(str) << "\n";

Catch (const std :: invalid_argument)
cerr << "Invalid argument" << "\n";

regresar 0;

Se proporciona una cadena que contiene un carácter especial como una cadena de entrada para convertir utilizando la función Stoll. La función Stoll no puede convertir los caracteres especiales de los datos generales de cadena. Plantea una excepción de argumento no válido.

La conversión de Stoll se realiza dentro del bloque "Try". Si la conversión no se puede hacer, se planteará la excepción de "argumento inválido" en el bloque de "captura".

Aquí está la siguiente salida:

En caso de una cadena de entrada no válida, el Stoll no puede realizar su función y lanzará una excepción.

Ejemplo 3

Ahora, probemos la función Stoll con una mezcla de una cadena de entrada válida e inválida. Aquí, proporcionaremos una combinación de cadenas válidas e inválidas a la función Stoll para ver el funcionamiento de la función Stoll.

#incluir
usando el espacio de nombres STD;
int main ()

cadena str = "123456789 0xffff 010";
String :: size_type sz = 0;
mientras (!stri.vacío())
largo largo ll = Stoll (str, & sz, 0);
std :: cout << str.substr(0,sz) << “ converted as “ << ll << '\n';
str = str.subStr (SZ);

regresar 0;

La cadena contiene tres elementos separados por el espacio. Dividiremos cada elemento en una cadena separada y convertiremos cada uno de ellos uno por uno. La cadena se itera a través y cada elemento se convierte independientemente usando un bucle "while". La función substring () divide la cadena en diferentes elementos o partes. Se proporciona la base 0 para que el compilador determine la base de conversión automáticamente al verificar el formato de datos de entrada.

El primer elemento, "123456789", es un número decimal, por lo que se convertirá en un número decimal usando la base 10. La conversión decimal de "123456789" debe ser "123456789". El segundo elemento, "0xffff", es una mezcla de números enteros, cadenas y hexadecimales. La función Stoll ignora los caracteres no válidos en la cadena y calculará la conversión de la cadena válida.

Por ejemplo, se ignorará el "0x" en la cadena y se realizará la conversión de "FFFF". La función Stoll determinará automáticamente la base de conversión del formato de datos. El "FFFF" es un entero en la serie hexadecimal, por lo que la función Stoll usará la base 16 para la conversión de cadenas. Y el último elemento, "010", es nuevamente un número entero, por lo que la función Stoll usará 10 para convertir la cadena decimal en un entero decimal. La cadena convertida "010" debe ser un entero "010". Veamos la salida proporcionada a continuación:

Conclusión

Tuvimos una descripción general rápida de la función Stoll. Con la ayuda de ejemplos, aprendimos el uso de la función Stoll en el lenguaje de programación C ++. En esta guía se proporcionan tres ejemplos únicos, junto con su explicación del código.