Programa que cuenta los digitos de un numero ingresado. Por ejemplo: el numero 12 tiene 2 digitos, el 333 tiene 3 digitos, el 1512 tiene 4 digitos.
#include <stdio.h>
#include <stdlib.h>
/*
Programa que cuenta los digitos de un numero ingresado
*/
int contarDigitos(int Num){
int Contador, Num2;
Num2 = Num;
Contador = 0;
while(Num != 0){
Contador++;
Num=(Num / 10);
}
printf("La cantidad de digitos del Numero [%d] es = %d\n",Num2,Contador);
}
int main(){
int Num;
printf("Ingresa un numero : ");
scanf("%d",&Num);
printf("------\n");
contarDigitos(Num);
system("pause");
}
Programa en C: Contar Digitos

Ey muchas gracias me ha servido 😀
Muy bueno!
Hola! Muy buen código. Me gustaría contribuir al blog comentando que con una sola línea se puede calcular la cantidad de digitos:
digitos = (int)log10(numero) + 1;
Sin embargo, este código tiene sus contras: para usar log10 se debe incluir math.h; si el numero es 0, no se debe evaluar el logaritmo; si el numero es negativo, se puede usar la función abs(), incluida en stdlib.h.
Por lo tanto, el código quedaría así:
int cant_digitos(int numero)
{
if (numero) // si el numero no es cero, similar a “if (numero != 0)”
return (int)log10(abs(numero)) + 1;
else
return 1; // el 0 es un digito, de todas maneras
}
// version de una sola linea (equivalente al anterior):
int cant_digitos(int numero)
{
return numero ? (int)log10(abs(numero)) + 1 : 1;
}
Aclaro que la idea no es alardear sobre la reducción de lineas, sino que mostrar como, usando una herramienta matematica, se puede lograr el mismo código, a costa de un par de funciones extras, claro.