すみません質問させてください。
入門書見て書いてるんですが

#include <stdio.h>

int astoi(const char s[])
{
int i;
int number = 0;

for(i = 0; s[i] >= '0' && s[i] <= '9'; i++)
number = 10 * number + (s[i] - '0');
return(number);
}

int main(void)
{
char x[]= "1234";

printf("%d", astoi(x));
return(0);
}

という文字型を数値に変えるプログラムで、
number = 10 * number + (s[i] - '0');
のところで (s[i] - '0') とあるんですがこれはどういう意味なんでしょうか?
この部分を消してみると、変な結果になることは確認したのですが・・・すみません教えてください。