Cómo convertir una cadena en un int en c ++

Cómo convertir una cadena en un int en c ++
La declaración de tipo de datos de la variable es obligatoria en C ++ porque es un lenguaje fuertemente escrito. A veces se requiere cambiar el tipo de datos de una variable de un tipo a otro tipo para el propósito de programación, como String to int o int to String. Este tipo de conversión se puede hacer en C ++ utilizando diferentes tipos de funciones incorporadas. Las diversas formas de convertir una cadena en un int en C ++ se han mostrado en este tutorial.

Requisito previo:

Antes de verificar los ejemplos de este tutorial, debe verificar que el compilador G ++ esté instalado o no en el sistema. Si está utilizando el código Visual Studio, instale las extensiones necesarias para compilar el código fuente de C ++ para crear el código ejecutable. Aquí, la aplicación de código de Visual Studio se ha utilizado para compilar y ejecutar el código C ++.

Uso de la función Atoi ():

La función Atoi () se usa para devolver un número al convertir una cadena creada por una matriz de char a un entero. El cstdlib Se requiere que el archivo de encabezado se incluya para usar esta función.

Sintaxis:

int atoi (const char *str)

Cree un archivo C ++ con el siguiente código para convertir una cadena de números en un entero utilizando la función ATOI (). Aquí, el strcpy () La función se ha utilizado para convertir la cadena en una matriz de char. El valor de la cadena de entrada se ha convertido en una matriz de char, y el valor convertido se ha utilizado en la función Atoi () para obtener el valor entero de la cadena. A continuación, el entero convertido se imprimirá si la conversión se realiza correctamente.

// incluir para imprimir la salida
#incluir
// incluir para usar la función ATOI ()
#incluir
// incluir para usar la función strcpy
#incluir
int main ()
// declarar una variable de cadena
std :: string strData;
// Declarar una variable de matriz Chracter
char strarr [50];
// tomar un número del usuario
std :: cout<// Convirtir la cadena en una matriz de charcater
strcpy (strarr, strdata.c_str ());
// convertir la matriz de caracteres en un entero
int número = std :: atoi (strarr);
// imprime el número
std :: cout<<"The converted number is = "<<
número <<'\n';
regresar 0;

Producción:

La siguiente salida aparecerá si 6090 se toma como entrada después de ejecutar el código.

Uso de la función stoi ():

La función ATOI () se usa para devolver un número al convertir un valor de cadena en un entero. El primer argumento de esta función es obligatorio, y los otros argumentos son opcionales. La sintaxis de esta función se da a continuación.

Sintaxis:

int stoi (const string & str, size_t* idx = 0, int base = 10)

Cree un archivo C ++ con el siguiente código para convertir la cadena en un entero usando la función stoi (). Después de ejecutar el código, el valor de entrada tomado del usuario se convertirá en un número e impreso si el valor de entrada es un número válido. Si el valor de entrada contiene algún alfabeto o carácter no numérico, entonces el argumento no válido se generará la excepción y se imprimirá un mensaje de error.

// incluir para imprimir la salida
#incluir
int main ()

// declarar una variable de cadena
std :: string strData;
// tomar un número del usuario
std :: cout<// convertir la cadena en número con manejo de errores
intentar
// convertir la cadena en entero
int número = std :: stoi (strData);
// imprime el número convertido
std :: cout<<
"El número convertido es ="<<
número <<'\n';

// Error de manejo si se da un número no válido
Catch (std :: invalid_argument const & e)
std :: cout<<"Input value is not a number.\n";

regresar 0;

Producción:

La siguiente salida aparecerá si 4577 se toma como entrada después de ejecutar el código.

La siguiente salida aparecerá si Hola se toma como entrada después de ejecutar el código.

Usando transmisiones de cadena:

Usando el isttringstream () La función es otra forma de convertir la cadena en un entero utilizando el operador '>>'. Cree un archivo C ++ con el siguiente código para convertir los datos de cadena en un entero utilizando el isttringstream () función. Se ha asignado un valor de cadena de números en una variable de cadena en el código que se ha utilizado como el valor de argumento del istream () función. A continuación, se ha impreso el valor entero convertido.

// incluir para imprimir la salida
#incluir
// incluir para usar la función istringtream ()
#incluir
int main ()

// declarar una variable de cadena
std :: string strData = "12345";
// declarar una variable entera
int número;
// Convierta la cadena en el entero
std :: istringstream (strdata) >> número;
// imprime el número convertido
std :: cout<<"The converted number is = "<<
número <<'\n';
regresar 0;

Producción:

La siguiente salida aparecerá después de ejecutar el código.

Uso de la función sscanf ():

Usando el sscanf () La función es otra forma de convertir la cadena en un entero. El cstdio Se requiere que el archivo de encabezado incluya para usar esta función. Cree un archivo C ++ con el siguiente código para convertir un valor de cadena en el entero utilizando el sscanf () función. Después de ejecutar el script, se tomará un valor de cadena del usuario. Si el valor de entrada es un valor de número válido, el valor de entrada se convertirá en entero e impreso; de lo contrario, se imprimirá un mensaje de error.

// incluir para imprimir la salida
#incluir
// incluir para usar la función sscanf ()
#incluir
int main ()
// declarar una variable de cadena
std :: string strData;
// declarar una variable entera
int número;
// tomar un número del usuario
std :: cout<if (sscanf (strdata.c_str (), "%d", y número) == 1)
// imprime el número convertido
std :: cout<<"The converted number is = "<< number <<'\n';

demás
// Imprima el mensaje de error
std :: cout<<"Input value is not a number.\n";

regresar 0;

Producción:

La siguiente salida aparecerá si 78325 se toma como entrada después de ejecutar el código.

Usando para bucle:

El siguiente ejemplo muestra cómo convertir un valor de cadena en un valor entero sin usar ninguna función incorporada. Cree un archivo C ++ con el siguiente código para convertir un valor de cadena en un número entero usando 'para' bucle. Se ha asignado un valor de cadena del número a una variable que se ha utilizado en el 'para'bucle para convertir la cadena en un entero.

#incluir
#incluir
int main ()

// declarar una variable de cadena
std :: string strData = "6000";
// declarar una variable entera
int número;
// convertir la cadena en entero
para (char chr: strdata)
if (chr> = '0' && chr<= '9')
número = número * 10 + (chr - '0');

// imprime el número convertido
std :: cout<<"The converted number is = "<<
número <<'\n';
regresar 0;

Producción:

La siguiente salida aparecerá si 6000 se toma como entrada después de ejecutar el código.

Conclusión:

Se han descrito cinco formas diferentes de convertir una cadena en un número en este tutorial utilizando ejemplos simples para ayudar a los lectores a conocer la forma de convertir cualquier cadena en un entero en la programación C ++.