Es muy sencillo...verás..
Si tienes que contar 'bicis', usas un contador:
Entero NumBicis
que incrementas cada vez que cuentas una...
Pero y si necesitas llevar la cuenta de varias cosas distintas?... usas un array como contador...
En tu caso si quieres contar cifras (o caracteres, que es lo mismo, solo cambia el enfoque).
Creas un array de 10 elementos, en el índice 0, llevas la cuenta de aparición de cada cifra 0, en el índice 1, la cuenta de aparición de la cifra 1, etc...
Luego, la función, si operas desde un valor numérico, sería tan simple como esto:
Function ContarPresenciaDecifras(entero Valor)
Crear array de 10 elementos
Bucle mientras Valor mayor o igual que 0
cifra = (valor mod 10)
Array(cifra) +=1
valor = (valor \ 10) // una división entera, no necesitamos decimales
Si valor es menor que 10 luego //cuando solo queda una cifra...
Array(valor) +=1
Valor = -1 //fuerza la salida del bucle
Fin si
Fin bucle
// falta presentar los datos, para ello:
// 1 - puedes devolver el array desde la función, (mejor si no la función es mejor cambiarla de nombre)
// 2 - Puedes presentarlos desde aquí, no es lo mejor para un código elegante, si para algo sencillo.
Fin funcion
Si operas con una cadena de texto, la obtención de las cifras varía ligeramente, pero la cuenta es casi idéntica.
Espero que para la presentación de los datos puedas manejarte solo...
p.d.: OJO: En la función que te pongo, si el valor recibido es 0, se contará dos veces... queda a tu criterio como solucionarlo...