logo

Konvertering af tal til streng i C++

I C++ er konvertering af heltal til strenge eller konvertering af tal til strenge eller omvendt faktisk et stort paradigmeskift i sig selv. Generelt eller mere specifikt i konkurrencepræget programmering er der mange tilfælde, hvor vi skal konvertere et tal til en streng eller streng til et tal. Lad os se på nogle metoder til at konvertere et heltal eller et tal til en streng.

java regex $

Konvertering af tal til streng i C++

Der er 4 vigtigste metoder til at konvertere et tal til en streng , som er som følger:

    Brug af to_string() Brug af streng Stream Brug af sprintf()-funktionen Brug af boost leksikalsk cast

Metode 1: Brug to_string()

Det to_string() funktion kan bruges til at konvertere et heltal, flydende kommaværdier eller et hvilket som helst tal til en streng. Denne funktion accepterer et tal (som kan være en hvilken som helst datatype) og returnerer tallet som den ønskede streng.



Syntaks :

string  to_string (int val );>

Parametre:

  • val – Enhver numerisk værdi.

Returneringsværdi:

  • Et strengobjekt, der indeholder repræsentationen af ​​værdi som en sekvens af tegn.

Eksempel :

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;> }>

>

>

Produktion

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

Tidskompleksitet: På)
Hjælpeplads: På)

Metode 2: Brug af strengstrømme

I denne metode erklærer en strengstrøm et strømobjekt, som først indsætter et tal, som en strøm i et objekt og derefter bruger str() at følge den interne konvertering af et tal til en streng.

Eksempel:

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;> }>

>

>

Produktion

The newly formed string from number is : 2016>

Tidskompleksitet: På)
Hjælpeplads: På)

Metode 3: Brug af sprintf()-funktionen

sprintf() funktionen gemmer outputtet på char-bufferen, der er angivet i funktionen, i stedet for at udskrive outputtet på konsollen.

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>

>

>

Produktion

the string is : 12234>

Tidskompleksitet: På)
Hjælpeplads: På)

Metode 4: Brug af boost leksikalsk rollebesætning

I lighed med strengkonvertering forbliver funktionen lexical_cast() den samme, men i ' boost leksikalsk rollebesætning ' liste over tidsargumenter ændres til lexical_cast(numeric_var).

Eksempel:

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;> }>

>

>

Produktion

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

Tidskompleksitet : På)
Hjælpeplads : På)