Hello everyone, here's the listing:
Code:
#include <stdio.h>
/* count digits, white space, others */
int main(void)
{
int c, i, nwhite, nother;
int ndigit[10];
nwhite = nother = 0;
for (i = 0; i < 10; ++i)
ndigit[i] = 0;
while ((c = getchar()) != EOF)
{
if (c >= '0' && c <= '9')
++ndigit[c-'0'];
else if (c == ' ' || c == '\n' || c == '\t')
++nwhite;
else
++nother;
}
printf("digits =");
for (i = 0; i < 10; ++i) /* recursively print every element in the array */
printf(" %d", ndigit[i]);
printf(", white space = %d, other = %d\n", nwhite, nother);
return 0;
}
I have some problem understanding the
line, I mean, does it browses sequentially in the ASCII table to seek for the value of c minus the value of the character '0' ?
If so, how can it find the value for the other digits 1-9?
Thank you in advance.
FSX