Hejo szybko wtłumacze
Mam kod
string oktety[4];
i np. w oktecie 1 zadeklaruje liczbe;
oktety[0]="10101010";
Teraz chciałbym się odwołać do danego stringa i komórki
cout << oktety[0]<- dana zmienna i teraz jak do komórki danej w stringu, bo też się daje w nawiasie kwadratowym, bo opcja oktety[0][7]<- jako komórka nie działa mi.
std::cout << oktety[0][1] << std::endl; // 0
// lub
std::cout << oktety[0].at(1) << std::endl; // 0
bo opcja oktety[0][7]<- jako komórka nie działa mi.
... a powinna. Może błąd jest gdzieś wcześniej.
Czy jest jakiś komunikat błędu? Wykrzacza się program? Czy może zwykły błąd w kodzie?
Jednak działa tylko mam kolejny problem
Chciałbym te liczby dodać do zmiennej int wynik
tzn
wynik += oktety[0][0] * mnoznik;
I dodaje mi chyba znak asci do tego, probowalem atoi ale bez skutecznie, ktos ma jakis pomysl?
Tremo napisał(a):
Jednak działa tylko mam kolejny problem
Chciałbym te liczby dodać do zmiennej int wynik
tzn
wynik += oktety[0][0] * mnoznik;
I dodaje mi chyba znak asci do tego,
Dla uproszczenia, string w c++ to tablica znaków (typów char, od -128
do 127
). Każdy znak ma swoją reprezentację liczbową. Ale reprezentacja znaku '0'
w kodzie ASCI to nie jest liczba 0
. Aby char '5'
potraktować jako liczbę 5
możesz odjąć od tej liczby '0'
, uzyskując w efekcie przesunięcie znaku '5'
od znaku '0'
w reprezentacji ASCI, czyli 5
.
probowalem atoi ale bez skutecznie, ktos ma jakis pomysl?
Używaj raczejstoi
- https://en.cppreference.com/w/cpp/string/basic_string/stol . Choć to i tak nie jest sedno problemu. atoi czy stoi weźmie cały łańcuch znakowy, a ciebie interesuje pojedyncza cyfra z tego co zrozumiałem.
stoi nie jest zadeklarowane, czyli nie wykrywa go mimo dodanie biblioteki string
Czyli naprościej rzecz ujmując potrzebuje tylko liczb 0 oraz 1 jak to mam zapisać, bo po 2.5h guglowania, pisania, zmieniania siły mi opadają.
Z góry byłbym wdzięczny
Tak pojedyńcza cyfra z stringa
Tremo napisał(a):
stoi nie jest zadeklarowane, czyli nie wykrywa go mimo dodanie biblioteki string
W 2018 warto zacząć kompilować swoje programy w standardzie co najmniej c++11
Czyli naprościej rzecz ujmując potrzebuje tylko liczb 0 oraz 1 jak to mam zapisać, bo po 2.5h guglowania, pisania, zmieniania siły mi opadają.
Korci mnie odesłać Cie do jakiegoś kursu używania wyszukiwarki, bo ewidentnie da się to znaleźć w ciągu minuty, ale łap: oktety[0][1] - '0'
.
@nalik: http://prntscr.com/l513n5
Dalej nie działa.
Może źle zrozumiałeś mnie, bo gugluje już sporo i naprawdę przeszukałem cały internet, moja babka od infy może nie mieć od c+11 i wtedy zaczyna się problem
Dla uproszczenia, string w c++ to tablica znaków (typów char, od -128 do 127). Każdy znak ma swoją reprezentację liczbową. Ale reprezentacja znaku '0' w kodzie ASCI to nie jest liczba 0. Aby char '5' potraktować jako liczbę 5 możesz odjąć od tej liczby '0', uzyskując w efekcie przesunięcie znaku '5' od znaku '0' w reprezentacji ASCI, czyli 5.
wynik += (oktety[0][0] - '0') * mnoznik;
Zrobione, ustawiłem sobie pomocniczą liczbę, jak jest i ify z ascii, close.