In C++ ist die Konvertierung von Ganzzahlen in Strings oder Zahlen in Strings oder umgekehrt an sich schon ein großer Paradigmenwechsel. Im Allgemeinen oder spezieller in der Wettbewerbsprogrammierung gibt es viele Fälle, in denen wir eine Zahl in eine Zeichenfolge oder eine Zeichenfolge in eine Zahl umwandeln müssen. Schauen wir uns einige Methoden zum Konvertieren einer Ganzzahl oder einer Zahl in eine Zeichenfolge an.
Konvertieren einer Zahl in einen String in C++
Es gibt 4 Hauptmethoden zum Konvertieren einer Zahl in eine Zeichenfolge , die wie folgt lauten:
- Verwendung von to_string() Verwendung von string Stream Verwendung der Funktion sprintf() Verwendung von Boost lexical cast
Methode 1: Verwendung von to_string()
Der to_string() Die Funktion kann verwendet werden, um eine Ganzzahl, Gleitkommawerte oder eine beliebige Zahl in eine Zeichenfolge umzuwandeln. Diese Funktion akzeptiert eine Zahl (die ein beliebiger Datentyp sein kann) und gibt die Zahl als gewünschte Zeichenfolge zurück.
Was ist Export unter Linux?
Syntax :
string to_string (int val );>
Parameter:
- val – Beliebiger numerischer Wert.
Rückgabewert:
- Ein Zeichenfolgenobjekt, das die Darstellung eines Werts als Zeichenfolge enthält.
Beispiel :
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;> }> |
>
>Ausgabe
The integer in string is : 20 The float in string is : 30.500000>
Zeitkomplexität: An)
Hilfsraum: An)
Methode 2: Verwenden von String-Streams
Bei dieser Methode deklariert ein String-Stream ein Stream-Objekt, das zunächst eine Zahl als Stream in ein Objekt einfügt und dann verwendet str() um die interne Umwandlung einer Zahl in eine Zeichenfolge zu verfolgen.
Beispiel:
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;> }> |
>
>
Schakal gegen WolfAusgabe
The newly formed string from number is : 2016>
Zeitkomplexität: An)
Hilfsraum: An)
Methode 3: Verwendung der Funktion sprintf()
sprintf() Die Funktion speichert die Ausgabe im in der Funktion angegebenen Zeichenpuffer, anstatt die Ausgabe auf der Konsole zu drucken.
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> |
>
>Ausgabe
the string is : 12234>
Zeitkomplexität: An)
Hilfsraum: An)
Methode 4: Verwendung der lexikalischen Boost-Umsetzung
Ähnlich wie bei der String-Konvertierung bleibt die Funktion lexical_cast() dieselbe, jedoch in der ‚ Stärkung der lexikalischen Besetzung ‘ Zeitargumentliste wird in lexical_cast(numeric_var) geändert.
Beispiel:
C++
String in Ganzzahl Java
// 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;> }> |
>
>Ausgabe
The float value in string is : 10.5 The int value in string is : 17>
Zeitkomplexität : An)
Hilfsraum : An)