Witam, mam do napisania program, który po wpisaniu liczby, sprawdzi ile cyfr ma dana liczba i obliczy sume tych cyfr. Niżej umieszczam moj kod, lecz problem jest z suma ponieważ sumują się wartości odpowiadające danym liczbom w kodzie ascii (np. dla 123 suma wyswietla sie 150) próbowałem również z getchar ale jest dokładnie to samo, jedyne rozwiązanie jakie mi przychodzi do głowy to odejmowanie od kazdej cyfry 48. Czy zna ktoś lepszy sposób ?
#include <stdio.h>
int main(){
int i=0,nl=0;
int suma=0;
char tab[21];
int b;
scanf("%s",tab);
while(tab[i]!=0)
{
nl++;
suma=suma;
i++;
}
printf("%d\t%d",nl,suma);
getch();
return 0;
}