• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Konwersja int na string

0 głosów
7,728 wizyt
pytanie zadane 12 sierpnia 2015 w C i C++ przez gagyn Stary wyjadacz (11,050 p.)

Witam,

mam pytanie jak przekonwertować liczbe int do string?

6 odpowiedzi

0 głosów
odpowiedź 12 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)
komentarz 12 sierpnia 2015 przez gagyn Stary wyjadacz (11,050 p.)

O tym wiem, tylko nie rozumiem.

Np:

itoa(i, linia, pokaz);

chcę przkonwertować pokaz do linia.

komentarz 12 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)

Nie rozumiem? Przecież masz na tej stronie wszystko pokazane. Ja polecam używać funkcji sprintf, która należy do standardu ANSI C (itoa już nie). Jak ją wykorzystać, to masz na stronie, którą podałem.

0 głosów
odpowiedź 12 sierpnia 2015 przez daan Pasjonat (17,640 p.)

najprościej będzie użyć funkcji std::to_string(x), x jest oczywiście ten twój int :) 

int x = 5;
std::string t = std::to_string(x);

 

komentarz 12 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)

i to zmienna liczbowa.

komentarz 12 sierpnia 2015 przez daan Pasjonat (17,640 p.)

ta opcja powinna rozwiązać problem z to_string

komentarz 12 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)

@daan Nie wiem, ale u mnie też nie działa ta metoda (choć mam ustawiony c++11 w ustawieniach).

komentarz 12 sierpnia 2015 przez daan Pasjonat (17,640 p.)
sprawa wygląda tak, że kompilator w C::B ten który jest domyślnie, jest po prostu stary :) i dlatego nie uda Ci się użyć tej funkcji, polecam w takim razie użycie <sstream> jak kolega @dorion300 napisał :)
komentarz 12 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)

Ja znam bibliotekę sstream i jej używałem smiley

0 głosów
odpowiedź 12 sierpnia 2015 przez Bartek85 Mądrala (7,440 p.)
#include <iostream>
#include <string>

int main()
{
	int x = 5;
	std::cout << "X=" << std::to_string(x);
}

 

0 głosów
odpowiedź 12 sierpnia 2015 przez Dorion300 Szeryf (90,250 p.)

Użyj strumieni ostringstream.

int i = 10;
ostringstream strim;
strim << i;
string str = strim.str();

Nagłówek potrzebny to "sstream"

0 głosów
odpowiedź 12 sierpnia 2015 przez 0xf Dyskutant (8,180 p.)
Chcesz sam napisac funkcje do tej konwersji czy zwyczajnie przekonwertowac ?
–1 głos
odpowiedź 12 sierpnia 2015 przez criss Mędrzec (172,570 p.)

Mozesz sam sobie napisac taka funkcje. Np. dla liczb od 0 do 999:

string tostring(int x)
{
       if(x==0) return "0";
       else if(x==1) return "1";
       else if(x==2) return "2";
       else if(x==3) return "3";
       else if(x==4) return "4";
       else if(x==5) return "5";
       else if(x==6) return "6";
       else if(x==7) return "7";
       else if(x==8) return "8";
       else if(x==9) return "9";
       else if(x>99) return tostring((x-(x%100))/100)+tostring((x-(x%10))/10)+tostring(x%10);
       else if(x>9) return tostring((x-(x%10))/10)+tostring(x%10);
}

Fakt, nie wyglada to zbyt ladnie ale dziala :D Btw na pewno da sie jakos zapetlic rekurencyjne (?) wywolywanie samej siebie zeby dzialala dla wiekszych liczb, ale sam potzrebowalem kiedys dla max 3-cyfrowych i nie chcialo mi sie dalej myslec :P
No albo sciagnac nowszy kompilator, bo widze, że w tym jest problem. Bo c++11 ma funkcje to_string() jak juz pisza ludzie niżej.

komentarz 12 sierpnia 2015 przez daan Pasjonat (17,640 p.)
nie nie nie, bez urazy ale to jest zła funkcja :) to już lepiej użyć starych funkcji C lub po prostu strumienia stringstream :P

Podobne pytania

0 głosów
1 odpowiedź 879 wizyt
pytanie zadane 17 maja 2015 w C i C++ przez Mak10 Nowicjusz (150 p.)
0 głosów
2 odpowiedzi 900 wizyt
pytanie zadane 1 listopada 2015 w C i C++ przez niezalogowany
0 głosów
1 odpowiedź 500 wizyt

93,753 zapytań

142,713 odpowiedzi

323,356 komentarzy

63,347 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...