Cómo usar la función strtol en c ++

Cómo usar la función strtol en c ++
En C ++, las funciones se utilizan para hacer que un programa sea más eficiente y reutilizable. El strtol () La función es una de esas funciones que convierte una cadena en un valor entero largo. En este artículo, comprenderemos la sintaxis y los parámetros del strtol () función y ver algunos ejemplos de su uso en c++.

¿Qué es la función strtol () en c?++

El strtol () La función es una función incorporada en C ++ que convierte una cadena en un valor entero largo. Acepta una cadena como datos y la transforma en un valor entero con la base especificada. Además, el método devuelve un enlace o puntero al carácter incorrecto inicial dentro de la cadena.

Sintaxis de la función strtol ()

La sintaxis del strtol () La función en C ++ es la siguiente:

strtol (s, & end, base)

Parámetros de la función strtol ()

El strtol () La función tiene tres parámetros:

  • s: Un puntero a la cadena que se convertirá en un valor entero largo.
  • fin: Un puntero al primer carácter inválido en la cadena, o a la cadena en sí si no se encuentran caracteres no válidos.
  • base: La base del número que se debe convertir. La base puede estar entre 2 y 36, y si se establece en 0, la función determina la base basada en el prefijo de la cadena de entrada.

Tipo de retorno de la función strtol ()

El strtol () La función devuelve un valor entero largo que se convierte de la cadena de entrada. Si no se produce una conversión, devuelve 0.

Arcil de encabezado en C ++ para usar la función strtol () en c++

Antes de usar el strtol () función en su código C ++, debe definir el #incluir archivo de cabecera.

Ejemplos de función strtol () en c++

Los siguientes son algunos ejemplos de uso strtol () función en c++.

Ejemplo 1: programa para convertir una cadena en enteros largos utilizando una base decimal

Con strtol () función, es bastante simple convertir una cadena en un entero largo usando la base decimal. El código de C ++ necesario en tal situación se muestra a continuación.

#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str [] = "12345678";
char* endptr;
num larga = strtol (str, & endptr, 10);
if (endptr == str)
cout<<"Invalid input"< demás
cout<<"The number is: "<
regresar 0;

El programa anterior declara una matriz de caracteres llamada STR, que contiene la cadena "12345678". Un puntero llamado endptr se usa para almacenar la dirección del primer carácter en la cadena que no es parte del número convertido. El strtol () Luego se llama función, con el str, & endptr del argumento, y 10. El primer argumento es la cadena a convertir, el segundo argumento es la dirección del puntero que se actualizará con la posición final de la cadena, y el tercer argumento es la base para la conversión, que es decimal en este caso.

El programa luego verifica si el endptr es igual al inicio de la cadena. Si es así, significa que la conversión no fue exitosa y se imprime un mensaje de error. De lo contrario, el programa imprime el número convertido.

Producción

Ejemplo 2: programa para convertir las cadenas en enteros largos con 0 bases

Si establecemos el argumento base del strtol () función a 0, la función detectará automáticamente la base de la cadena de entrada. Esto hace que sea más fácil convertir cadenas de diferentes bases sin tener que especificar explícitamente la base. Por ejemplo, si la cadena comienza con "0x", se detecta automáticamente como un número hexadecimal.

Mediante el uso del strtol () Función Para convertir las cadenas en enteros largos con 0 bases, podemos asegurarnos de que la cadena de entrada sea válida y se pueda convertir correctamente en un entero largo. Esto puede ser útil en muchos tipos de implementaciones, como leer valores numéricos de la entrada del usuario o analizar la información de los documentos de texto.

El programa que se detalla a continuación está bien según la situación previamente establecida.

#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str [] = "0xa0b0c0";
char* endptr;
num larga = strtol (str, & endptr, 0);
if (endptr == str)
cout<<"Invalid input"< demás
cout<<"The number is: "<
regresar 0;

El programa anterior declara una matriz de personajes nombrada stri, que contiene la cadena "0xa0b0c0". El '0x' El prefijo indica que la cadena está en formato hexadecimal. Un puntero llamado endptr También se declara, que se utilizará para almacenar la dirección del primer carácter en la cadena que no forma parte del número convertido. El strtol () Luego se llama a la función, con el str, & endptr del argumento, y 0. La base para la conversión, que se establece en 0, detecta automáticamente la base de la cadena de entrada.

El programa luego verifica si el endptr es igual al inicio de la cadena. Si es así, significa que la conversión no fue exitosa y se imprime un mensaje de error. De lo contrario, el programa imprime el número convertido.

Producción

Conclusión

Cª++, strtol () La función se usa para la conversión de una cadena en un valor entero largo. Siguiendo las pautas anteriores, podrá aprender el uso de strtol () función en C ++ ya que encontrará diferentes ejemplos que lo ayudarán a comprender los conceptos básicos de esta función.