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

Proste pytanko (string)

Object Storage Arubacloud
0 głosów
190 wizyt
pytanie zadane 6 lipca 2017 w C i C++ przez GaNdAlFf56 Początkujący (380 p.)

Siemka, nie wiem jak poniższy kod działa.

string pesel;
       cin>>pesel;    //Wczytuje 1111
       int tab;
       tab=pesel[0]-'0';    //<----------
       cout<<tab;

Chodzi mi o linie tab=pesel[0]-'0';

Dlaczego tab=pesel[0]; równa się 49, a z dopiskiem -'0' , czyli tab=pesel[0]-'0'; równa sie 1?

1 odpowiedź

0 głosów
odpowiedź 6 lipca 2017 przez jpacanowski VIP (101,940 p.)
edycja 7 lipca 2017 przez jpacanowski

Dlaczego tab=pesel[0]; równa się 49

Bo "1" to 49 (ASCII).

a z dopiskiem -'0' , czyli tab=pesel[0]-'0'; równa sie 1?

Bo jak odejmiesz 48 ("0") od 49 ("1") to zostaje 1.

To z tym -'0' to jest takie ciekawe triko... zwróci ci liczbę, zamiast kodu ASCII. Od '3' (ASCII: 51) jak odejmiesz '0' (ASCII: 48) będziesz miał 3 zamiast 51... ;)

komentarz 6 lipca 2017 przez GaNdAlFf56 Początkujący (380 p.)
Tak, to wiem, ale co oznacza dopisek -'0';
komentarz 6 lipca 2017 przez jpacanowski VIP (101,940 p.)
Edytowałem odpowiedź.

A z -'0' to nie wiem o co komuś kto to pisał chodziło...
komentarz 6 lipca 2017 przez GaNdAlFf56 Początkujący (380 p.)
Dziękuję teraz wszystko jasne! =D
komentarz 7 lipca 2017 przez jpacanowski VIP (101,940 p.)
edycja 7 lipca 2017 przez jpacanowski
To z tym -'0' to jest takie ciekawe triko... zwróci ci liczbę, zamiast kodu ASCII. Od '3' (ASCII: 51) jak odejmiesz '0' (ASCII: 48) będziesz miał 3 zamiast 51... ;)
komentarz 7 lipca 2017 przez unknown Nałogowiec (39,560 p.)
W sumie kod ASCII też jestem intem
komentarz 7 lipca 2017 przez draghan VIP (106,230 p.)

W sumie kod ASCII też jestem intem

Kod ASCII jest reprezentacją znaku przez liczbę naturalną (+ewentualne zero). A to, do jak pojemnej zmiennej przypiszesz wartość tej liczby, to kwestia odrębna.

Podobne pytania

+1 głos
6 odpowiedzi 828 wizyt
pytanie zadane 1 stycznia 2016 w C i C++ przez robert9620 Stary wyjadacz (11,640 p.)
+2 głosów
1 odpowiedź 11,576 wizyt
pytanie zadane 16 stycznia 2016 w C i C++ przez xCodezaur Bywalec (2,850 p.)
0 głosów
1 odpowiedź 150 wizyt
pytanie zadane 17 października 2020 w C i C++ przez FaloY Bywalec (2,180 p.)

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 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!

...