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

Zmiana string na int

Object Storage Arubacloud
+2 głosów
1,065 wizyt
pytanie zadane 17 czerwca 2015 w C i C++ przez Jejkej Obywatel (1,030 p.)

Mam problem - mianowicie chcę podzielić string cyfr na tablice tych cyfr, lecz nie mam pojęcia jak ro zrobić. Możecie pomóc?

string text = "15321";

6 odpowiedzi

+2 głosów
odpowiedź 17 czerwca 2015 przez krecik1334 Maniak (58,390 p.)
wybrane 17 czerwca 2015 przez Jejkej
 
Najlepsza
Stwórz tablicę o rozmiarze text.length(). Iteruj się po text i za każdym razem tablica[i] = text[i]-'0' lub text[i]-48 (jak kto woli).
komentarz 17 czerwca 2015 przez Jejkej Obywatel (1,030 p.)
Cholera aż mi wstyd teraz, że zapomniałem żeby odjąć to 48. Dzięki za pomoc.
+1 głos
+1 głos
odpowiedź 17 czerwca 2015 przez kotfuterkowy Dyskutant (9,220 p.)
To na pewno c++, a nie c sharp?
komentarz 17 czerwca 2015 przez draghan VIP (106,230 p.)
Dlaczego nie miałby to być C++? :)
komentarz 17 czerwca 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
A czemu miałby być C#? xD
komentarz 17 czerwca 2015 przez krecik1334 Maniak (58,390 p.)
A czemu nie miałby być to C#?
komentarz 17 czerwca 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
A czemu C#, skoro temat to C++, a składnia jest zgodna z oboma językami? xD
komentarz 17 czerwca 2015 przez draghan VIP (106,230 p.)
A ja się pytam, gdzie jest Nemo?! ;D
komentarz 17 czerwca 2015 przez criss Mędrzec (172,590 p.)
A czemu miałby to być C++?
komentarz 17 czerwca 2015 przez Adam Knie Mądrala (5,650 p.)
I gdzie jest Half-Life 3?
komentarz 17 czerwca 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Dobra koniec spamu :D
0 głosów
odpowiedź 17 czerwca 2015 przez jeremus Maniak (59,720 p.)
#include <iostream>
 #include <string>
 using namespace std;

int t[10];
string s="345627";
int main()
{

 for ( int i=0;i<s.length();i++)
 {
     t[i]=(int)s[i]-48;
     cout << t[i] << endl;
 }

}

 

0 głosów
odpowiedź 17 czerwca 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Możesz użyć funkcji atoi. O ile się nie mylę, jest ona dostępna w bibliotece cstdlib.

int liczba=atoi(tekst.c_str());

funkcja atoi przyjmuje jako parametr zmienną o typie const char, dlatego musimy naszego stringa przekonwertować, dzięki dopiskowi c_str() :)

komentarz 17 czerwca 2015 przez draghan VIP (106,230 p.)
Od standardu C++11 mamy wygodny zestaw współpracujący z std::string. :)

Np. std::stoi() konwertuje string -> int, a to_string() przyjmuje na siebie konwersje liczba -> string. :)
komentarz 17 czerwca 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
No widzisz, ja taki zacofany jestem :)
komentarz 17 czerwca 2015 przez draghan VIP (106,230 p.)
Jeszcze atoi() jest znośna, ale itoa() mnie zawsze dobijało - trzeba było tam bufor tworzyć, podawać podstawę, potem jeszcze przepisywać do łańcucha... Strasznie niewygodne. :)

Ale jeśli ktoś musi pisać w C, no to raczej nie ma innego wyjścia, chyba że napisać własny zestaw do obsługi konwersji. ;D

Jak tak sobie czytam (właściwie wczoraj się za to na poważnie wziąłem ;) to C++11 jest całkiem wygodny. :)
0 głosów
odpowiedź 17 czerwca 2015 przez Radfler VIP (101,030 p.)

Użyj funkcji std::stoi (nagłówek <string>, http://en.cppreference.com/w/cpp/string/basic_string/stol):

std::string tekst = "123";
int liczba = stoi(tekst);

Możesz też użyć sposobu z strumieniami "płynącymi" do string (nagłówek <sstream>, http://en.cppreference.com/w/cpp/io/basic_istringstream):

string tekst = "123";
int liczba;

std::istringstream str_tekst(tekst);
str_tekst >> liczba;

Podobne pytania

0 głosów
1 odpowiedź 960 wizyt
pytanie zadane 12 kwietnia 2016 w C i C++ przez zkkf56 Dyskutant (8,710 p.)
0 głosów
2 odpowiedzi 558 wizyt
pytanie zadane 24 października 2019 w C i C++ przez KumberTwo Dyskutant (8,270 p.)
0 głosów
1 odpowiedź 283 wizyt
pytanie zadane 22 grudnia 2021 w C i C++ przez Dobdo Użytkownik (570 p.)

92,624 zapytań

141,482 odpowiedzi

319,824 komentarzy

62,006 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...