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".

3 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

This site uses Akismet to reduce spam. Learn how your comment data is processed.