2 min de lectura

En lenguaje de C++ después de leer cadenas se presentan problemas para leer números, debido a que nuestro programa no identifica que son enteros y por lo tanto no se pueden realizar operaciones.

Para solucionar esto es necesario convertir nuestra cadena a un entero.

 

Solución.

Para convertir nuestra cadena a un entero utilizamos la función atoi. Esta función nos retorna el valor convertido.

Analiza la cadena tipo string e interpreta su contenido como un número entero, que se devuelve como un valor de tipo int.

La primera función descarta todos los espacios vacíos hasta que encuentra el primer caracter. A partir de este caracter toma un valor inicial seguido de dígitos base 10 como sea posible y los interpreta como un valor numérico.

La cadena puede contener caracteres adicionales o texto después de los que forman el número entero, estos caracteres son ignorados y no tienen ningún efecto sobre esta función.

Si la primera secuencia de caracteres no está en blanco str no es un número entero válido, o si no existe tal secuencia, ya sea porque str está vacía o sólo contiene espacios en blanco, se devuelve un valor cero.

Lo anterior nos describe lo siguiente, por ejemplo: Si guardamos en nuestra cadena tipo string un d24, lo que nos va a devolver nuestra función atoi es un 0, esto porque nuestro primer carácter es una letra. Pero si guardamos un 24d lo que nos devolverá será un 24 ignorando la d al final.

Para utilizar la función atoi necesitamos llamar la librería cstdlib #include <cstdlib>. Y la sintaxis es la siguiente.

 

Compartir

Actualmente estudiante de Comunicaciones y Electrónica, con mucho entusiasmo por aprender, interés especial por el área de sistemas embebidos.
Disfruto mucho de ver películas y leer. Mi escritor favorito es Julio Cortazar y mi obra favorita de el es “Rayuela”.

2 COMENTARIOS

  1. Buenas noches, tengo una duda
    Si en la variable String tengo un valor binario (como 10110001) y lo quiero convertir a entero, no genera algún problema? He estado intentando y el resultado me da valores negativos, Gracias por la ayuda

DEJA UNA RESPUESTA

Please enter your comment!
Please enter your name here