Convertir número a string en C++

Convertir números en strings 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 string o una string en un número. Pero la falta de conocimiento de ciertas herramientas esenciales nos obliga a hacerlo. En este artículo se mencionan algunos métodos para lograr esta tarea.

Convertir número a string en C++

Existen 3 métodos principales para convertir un número en una string , que son los siguientes:

  • Usando string Stream 
  • Usando to_string()
  • Uso de impulso de reparto léxico

Método 1: usar secuencias de strings

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

Ejemplo:   

CPP

// C++ code to demonstrate string stream method
// to convert number to string.
#include<iostream>
#include <sstream>  // for string streams
#include <string>  // 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;
}
Producción

The newly formed string from number is : 2016

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(n)

Método 2: Usar to_string()

 La función to_string() acepta un número (que puede ser cualquier tipo de datos) y devuelve el número en la string deseada. 

CPP

// C++ code to demonstrate "to_string()" method
// to convert number to string.
#include <iostream>
#include <string> // 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;
}
Producción

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

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(n)

Método 3: Usar el reparto léxico de refuerzo

Similar a la conversión de strings, la función ” lexical_cast() ” sigue siendo la misma, pero en la lista de argumentos de tiempo ‘ boost lexical cast ‘ se modifica a “lexical_cast(numeric_var).  

Ejemplo:

CPP

// C++ code to demonstrate "lexical_cast()" method
// to convert number to string.
#include <boost/lexical_cast.hpp> // for lexical_cast()
#include <iostream>
#include <string> // 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<string>(f_val);
 
    // lexical_cast() converts a int into string
    string stri = boost::lexical_cast<string>(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 de tiempo: O(n)

Espacio Auxiliar: O(n)

Este artículo es una contribución de Manjeet Singh . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente. 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *