Wątek przeniesiony 2018-10-11 19:50 z C/C++ przez kq.

4 stringi w tablicy i odwołanie się do danej komórki, jak?

0

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.

0
   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?

0

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?

0
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.

0

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

1
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'.

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

0

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

Zrobione, ustawiłem sobie pomocniczą liczbę, jak jest i ify z ascii, close.

1 użytkowników online, w tym zalogowanych: 0, gości: 1