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

Pytanie odnosnie kodu

Object Storage Arubacloud
0 głosów
107 wizyt
pytanie zadane 25 listopada 2018 w C i C++ przez Padoski Użytkownik (990 p.)

Chcialem napisac kod zliczajacy sume cyfr danej liczby. I mam pytanko

#include <iostream>

using namespace std;

void dodawanieCyfr(string);

int main()
{
    string liczba;
    cout << "Podaj dowolna liczbe naturalna";
    cin>> liczba;
    dodawanieCyfr(liczba);
}
void dodawanieCyfr(string x)
{
    int suma=0;
    for(int i=0; x[i]!='\0'; i++)
    {
        suma = suma+x[i]-'0';
    }
    cout<<suma;
}

Co oznacza suma = suma+x[i]-'0';   . Dlaczego się odejmuje tu jakies '0'? PS. Kod działa. Czym jest to zero ktore sie odejmuje ?

1 odpowiedź

+1 głos
odpowiedź 25 listopada 2018 przez RafalS VIP (122,820 p.)
wybrane 25 listopada 2018 przez Padoski
 
Najlepsza

tablica asci wyglada tak:

48 - '0'
49 - '1'
50 - '2'
....
57 - '9'

char c = '2';
int i = (int) c; // i == 50

Jak z tego 50 zrobic 2?. Odjac 48 czyli kod zera. Inaczej mozesz o tym myslec tak, ze liczymy ile elementow za zerem jestesmy w tablicy ascii.

komentarz 25 listopada 2018 przez Padoski Użytkownik (990 p.)
dzieki, czaje :)
komentarz 27 lutego 2019 przez Piter10p Bywalec (2,750 p.)
Należy jednak pamiętać, że to ultrabrudne rozwiązanie. Powinieneś rzutować zmienną ze stringa na int. Np. funkcją atoi.

Dlaczego? Co jeżeli string jest sformatowany inaczej, niż ascii? Kod się posypie. A dziś ascii standardem raczej nie jest.

Poza tym kod ten jest ciężki w czytaniu. Trzeba chwilę pomyśleć, żeby dojść o co w nim chodzi. A pamiętaj: Miarą jakości kodu jest: co to/minutę ;)

Podobne pytania

0 głosów
1 odpowiedź 101 wizyt
pytanie zadane 27 lutego 2019 w HTML i CSS przez nichu Nowicjusz (140 p.)
0 głosów
1 odpowiedź 194 wizyt
pytanie zadane 19 czerwca 2020 w C i C++ przez Eriss69 Gaduła (4,470 p.)
0 głosów
0 odpowiedzi 271 wizyt
pytanie zadane 21 grudnia 2020 w Python przez ifuknowme555 Początkujący (410 p.)

92,563 zapytań

141,413 odpowiedzi

319,590 komentarzy

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

...