logo

Konwersja liczby na ciąg w C++

W C++ konwersja liczb całkowitych na ciągi znaków lub konwersja liczb na ciągi znaków i odwrotnie jest w rzeczywistości dużą zmianą paradygmatu samą w sobie. Ogólnie rzecz biorąc, a dokładniej w programowaniu konkurencyjnym, istnieje wiele przypadków, w których musimy przekonwertować liczbę na ciąg znaków lub ciąg na liczbę. Przyjrzyjmy się niektórym metodom konwersji liczby całkowitej lub liczby na ciąg znaków.

Konwersja liczby na ciąg w C++

Tam są 4 główne metody konwersji liczby na ciąg znaków , które są następujące:



    Używanie to_string() Używanie string Stream Używanie funkcji sprintf() Używanie wzmacniającego rzutowania leksykalnego

Metoda 1: Używanie to_string()

The to_string() funkcji można użyć do konwersji liczby całkowitej, wartości zmiennoprzecinkowej lub dowolnej liczby na ciąg znaków. Ta funkcja przyjmuje liczbę (która może być dowolnym typem danych) i zwraca liczbę jako żądany ciąg.

Składnia :

string  to_string (int val );>

Parametry:



  • wal – Dowolna wartość liczbowa.

Wartość zwracana:

  • Obiekt typu string zawierający reprezentację wartości jako sekwencję znaków.

Przykład :

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

formacie string
>

wiersz kontra kolumna
>

Wyjście

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

Złożoność czasowa: NA)
Przestrzeń pomocnicza: NA)

Metoda 2: Korzystanie ze strumieni ciągów

W tej metodzie strumień łańcuchowy deklaruje obiekt strumienia, który najpierw wstawia liczbę jako strumień do obiektu, a następnie używa str() śledzić wewnętrzną konwersję liczby na ciąg znaków.

Przykład:

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

>

>

Wyjście

The newly formed string from number is : 2016>

Złożoność czasowa: NA)
Przestrzeń pomocnicza: NA)

Metoda 3: Użycie funkcji sprintf().

sprintf() funkcja przechowuje dane wyjściowe w buforze znaków określonym w funkcji, zamiast drukować dane wyjściowe na konsoli.

C++


vlc pobierz z YouTube'a



// 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>

>

>

Wyjście

the string is : 12234>

Złożoność czasowa: NA)
Przestrzeń pomocnicza: NA)

Metoda 4: Użycie wzmocnienia leksykalnego

Podobnie jak w przypadku konwersji ciągów, funkcja lexical_cast() pozostaje taka sama, ale w zwiększyć obsadę leksykalną „ lista argumentów czasu modyfikuje się do lexical_cast(numeric_var).

Przykład:

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

>

np. gdzie
>

Wyjście

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

Złożoność czasu : NA)
Przestrzeń pomocnicza : NA)