for( i=0; buf[i]; i++ ) '0' <= buf[i] && buf[i] <= '9' && cnt[buf[i]-'0']++;

この行何してんのかよく分からない(´・ω・`)?