Conversione di numeri in stringhe in C++
In C++, convertire numeri interi in stringhe o convertire numeri in stringhe o viceversa è in realtà di per sé un grande cambiamento di paradigma. In generale o più specificamente nella programmazione competitiva ci sono molti casi in cui dobbiamo convertire un numero in una stringa o una stringa in un numero. Diamo un'occhiata ad alcuni metodi per convertire un numero intero o un numero in una stringa.
Conversione di numeri in stringhe in C++
Ci sono 4 metodi principali per convertire un numero in una stringa , che sono i seguenti:
- Utilizzando to_string() Utilizzando string Stream Utilizzando la funzione sprintf() Utilizzando boost lessical cast
Metodo 1: utilizzo di to_string()
IL accordare() La funzione può essere utilizzata per convertire un numero intero, valori in virgola mobile o qualsiasi numero in una stringa. Questa funzione accetta un numero (che può essere qualsiasi tipo di dati) e restituisce il numero come stringa desiderata.
Sintassi :
string to_string (int val );
parametri:
- val – Qualsiasi valore numerico.
Valore di ritorno:
- Un oggetto stringa contenente la rappresentazione del valore come sequenza di caratteri.
Esempio :
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;> }> |
Produzione
The integer in string is : 20 The float in string is : 30.500000
Complessità temporale: SU)
Spazio ausiliario: SU)
Metodo 2: utilizzo di flussi di stringhe
In questo metodo, un flusso di stringhe dichiara un oggetto flusso che prima inserisce un numero, come flusso in un oggetto e poi utilizza str() per seguire la conversione interna di un numero in una stringa.
Esempio:
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;> }> |
Produzione
The newly formed string from number is : 2016
Complessità temporale: SU)
Spazio ausiliario: SU)
Metodo 3: utilizzo della funzione sprintf()
sprintf() La funzione memorizza l'output nel buffer dei caratteri specificato nella funzione, invece di stampare l'output sulla console.
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> |
Produzione
the string is : 12234
Complessità temporale: SU)
Spazio ausiliario: SU)
Metodo 4: utilizzo del cast lessicale di potenziamento
Similmente alla conversione di stringhe, la funzione lexical_cast() rimane la stessa, ma nel formato ' potenziare il cast lessicale ' L'elenco degli argomenti temporali viene modificato in lexical_cast(numeric_var).
Esempio:
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;> }> |
Produzione
The float value in string is : 10.5 The int value in string is : 17
Complessità temporale : SU)
Spazio ausiliario : SU)