Если у вас есть только номер, то вы можете сделать это:
int val; //Input
...
int ones = 0;
while(val != 0) {
ones += ((val % 10) == 1) ? 1 : 0;
val /= 10;
}
Если у вас есть строка (char *), вы должны сделать что-то вроде этого:
while(*str != '\0') {
if(*str++ == '1') {
ones++;
}
}
Стоит также отметить, что c имеет функцию charAt, в некотором смысле:
"java".charAt(i) == "c the language"[i];
Индексируя в char *, вы можете получить желаемое значение, но вы должны быть осторожны, потому что нет исключения indexOutOfBounds. Программа завершится сбоем, если вы перейдете через конец строки, или, что еще хуже, она может продолжить работать, но имеет испорченное внутреннее состояние.