logo

Convertir número en cadena en C++

En C++, convertir números enteros en cadenas o convertir números en cadenas o viceversa es en realidad un gran cambio de paradigma en sí mismo. En general o más específicamente en la programación competitiva, hay muchos casos en los que necesitamos convertir un número en una cadena o una cadena en un número. Veamos algunos métodos para convertir un número entero o un número en una cadena.

Convertir número en cadena en C++

Hay 4 métodos principales para convertir un número en una cadena , que son los siguientes:



    Usando to_string() Usando string Stream Usando la función sprintf() Usando boost léxical cast

Método 1: usar to_string()

El Encadenar() La función se puede utilizar para convertir un número entero, valores de punto flotante o cualquier número en una cadena. Esta función acepta un número (que puede ser cualquier tipo de datos) y devuelve el número como la cadena deseada.

Sintaxis :

string  to_string (int val );>

Parámetros:



  • vale – Cualquier valor numérico.

Valor de retorno:

  • Un objeto de cadena que contiene la representación del valor como una secuencia de caracteres.

Ejemplo :

C++






// C++ code to demonstrate 'to_string()' method> // to convert number to string.> #include> #include // for string and to_string()> using> namespace> std;> // Driver Code> int> main()> {> >// Declaring integer> >int> i_val = 20;> >// Declaring float> >float> f_val = 30.50;> >// Conversion of int into string using> >// to_string()> >string stri = to_string(i_val);> >// Conversion of float into string using> >// to_string()> >string strf = to_string(f_val);> >// Displaying the converted strings> >cout <<>'The integer in string is : '>;> >cout << stri << endl;> >cout <<>'The float in string is : '>;> >cout << strf << endl;> >return> 0;> }>

>

>

numeros romanos del 1 al 100
Producción

The integer in string is : 20 The float in string is : 30.500000>

Complejidad del tiempo: En)
Espacio Auxiliar: En)

Método 2: usar secuencias de cadenas

En este método, una secuencia de cadena declara un objeto de secuencia que primero inserta un número, como una secuencia en un objeto y luego usa cadena() para seguir la conversión interna de un número a una cadena.

Ejemplo:

C++




// C++ code to demonstrate string stream method> // to convert number to string.> #include> #include // for string streams> #include // for string> using> namespace> std;> int> main()> {> >int> num = 2016;> >// declaring output string stream> >ostringstream str1;> >// Sending a number as a stream into output> >// string> >str1 << num;> >// the str() converts number into string> >string geek = str1.str();> >// Displaying the string> >cout <<>'The newly formed string from number is : '>;> >cout << geek << endl;> >return> 0;> }>

>

>

base de datos
Producción

The newly formed string from number is : 2016>

Complejidad del tiempo: En)
Espacio Auxiliar: En)

Método 3: usar la función sprintf()

sprintf() La función almacena la salida en el búfer de caracteres especificado en la función, en lugar de imprimir la salida en la consola.

C++




// C++ Program to illustrate the use of sprintf() for number> // to string conversion> #include> using> namespace> std;> int> main()> {> >// any num> >int> n = 12234;> >// string buffer> >char> str[1000];> >// sprintf() to print num to str buffer> >sprintf>(str,>'%d'>, n);> >cout <<>'the string is : '> << str;> >return> 0;> }> // this code is contributed by shivanisingh>

>

>

Producción

the string is : 12234>

Complejidad del tiempo: En)
Espacio Auxiliar: En)

Método 4: utilizar la transmisión léxica de refuerzo

Similar a la conversión de cadenas, la función lexical_cast() sigue siendo la misma, pero en el ' aumentar el reparto léxico 'la lista de argumentos de tiempo se modifica a lexical_cast(numeric_var).

Ejemplo:

C++




// C++ code to demonstrate 'lexical_cast()' method> // to convert number to string.> #include // for lexical_cast()> #include> #include // for string> using> namespace> std;> // Driver Code> int> main()> {> >// Declaring float> >float> f_val = 10.5;> >// Declaring int> >int> i_val = 17;> >// lexical_cast() converts a float into string> >string strf = boost::lexical_cast(f_val);> >// lexical_cast() converts a int into string> >string stri = boost::lexical_cast(i_val);> >// Displaying string converted numbers> >cout <<>'The float value in string is : '>;> >cout << strf << endl;> >cout <<>'The int value in string is : '>;> >cout << stri << endl;> >return> 0;> }>

>

>

Producción

The float value in string is : 10.5 The int value in string is : 17>

Complejidad del tiempo : En)
Espacio Auxiliar : En)