How to write a C Program to Count Number of Digits in a Number using For Loop, While Loop, Functions, and Recursion. Our task is to accept user input and find the total number of individual digits in that number. For example, if the user enters 98765, the result will be 5.
C Program to Count Number of Digits in a Number using While Loop
This program to count digits in a number allows the user to enter any positive integer. And then, it will divide the given number into individual digits and count those individual digits using While Loop.
#include <stdio.h>
int main()
{
int Number, Reminder, Count=0;
printf("\n Please Enter any number\n");
scanf("%d", &Number);
while(Number > 0)
{
Number = Number / 10;
Count = Count + 1;
}
printf("\n Number of Digits in a Given Number = %d", Count);
return 0;
}
Counting the Digits in a Number using While Loop output

This program to count number of digits in c allows the user to enter any positive integer, and then, that number assigned to the Number variable.
Next, the loop Condition in the C While Statement will make sure that the given number is greater than 0 (Means Positive integer and greater than 0)
User Entered value in this C program: Number = 9875 and Count = 0
First Iteration
Number = Number / 10 = 9875 / 10
Number = 987
Count = Count + 1 = 0 + 1
Count = 1
Second Iteration: From the first Iteration, the values of both Number and Count has changed as Number = 987 and Count = 1
Number = 987 / 10 = 98
Count = 1 + 1 = 2
Third Iteration: From the second Iteration, the values of both Number and Count has been changed as Number = 98 and Count = 2
Number = 98 / 10 = 9
Count = 2 + 1 = 3
Fourth Iteration: From the third Iteration of count digits in a number program, the values Number = 9 and Count = 3
Number = 9 / 10 = 0
Count = 3 + 1 = 4
Here Number = 0 so, the C Programming condition present in the while loop will fail.
The last Programming printf statement will print the number of digits present in the given number using the Count variable as the output. So, the output of the given variable 9875 is 4
C Program to Count Number of Digits in a Number using For Loop
This program to count the number of digits allows the user to enter any positive integer. Next, it divides the given number into individual digits, and counts those individual digits using For Loop.
#include <stdio.h>
int main()
{
int Number, Reminder, Count;
printf("\n Please Enter any number\n");
scanf("%d", &Number);
for (Count=0; Number > 0;Number=Number/10)
{
Count=Count + 1;
}
printf("\n Number of Digits in a Given Number = %d", Count);
return 0;
}
We just replaced the While loop in the above count number of digits in a number example with the For loop. If you don’t understand the for loop in this C program, then please refer to the C language For Loop article.
Please Enter any number
256
Number of Digits in a Given Number = 3
C Program to Count Number of Digits in a Number Using Functions
This program to count the number of digits allows the user to enter any positive integer. Then it divides the given number into individual digits and counting those individual digits using Functions. Refer to the Functions in C.
#include <stdio.h>
int Count_Of_Digits (int);
int main()
{
int Number, Count = 0;
printf("\n Please Enter any number\n");
scanf("%d", &Number);
Count = Count_Of_Digits (Number);
printf("\n Number of Digits in a Given Number = %d", Count);
return 0;
}
int Count_Of_Digits (int Number)
{
int Count;
while(Number > 0)
{
Number = Number / 10;
Count = Count + 1;
}
return Count;
}
Please Enter any number
9875
Number of Digits in a Given Number = 4
Within this count number of digits program, When the compiler reaches to Count_Of_Digits (Number) line in the main() program then the compiler will immediately jump to below function:
int Count_Of_Digits (int Number)
We already explained the LOGIC above example. Please refer Program to Count Number of Digits of a Given Number using the While Loop Analysis section.
The last line ends with a return Count Statement.
NOTE: If we create a function with Void, then there is no need to return any value. But, if we declared a function with any data type (int, float. etc.), then we have to return something out from the function.
C Program to Count Number of Digits in a Number Using Recursion
This program to count the number of digits divides the given number and count those individual digits using Recursion. Check out the Recursion in C article.
#include <stdio.h>
int Count_Of_Digits (int);
int main()
{
int Number, Count = 0;
printf("\n Please Enter any number\n");
scanf("%d", &Number);
Count = Count_Of_Digits (Number);
printf("\n Number of Digits in a Given Number = %d", Count);
return 0;
}
int Count_Of_Digits (int Number)
{
static int Count =0;
if(Number > 0)
{
Count = Count + 1;
Count_Of_Digits (Number / 10);
}
return Count;
}
Count the Digits in a Number Using Recursion output
Please Enter any number
985682
Number of Digits in a Given Number = 6
Within this program to count the number of digits, In the Count_Of_Digits (int Number) function definition,
A static variable will initialize the value only when the function called the first time.
Count_Of_Digits (Number / 10) statement will help to call the function Recursively with the updated value. If you miss this statement, after completing the first line, it will terminate.
For example, Number = 1234, then the output will be 4
Program to count the number of digits using do while loop
The following example uses the do-while loop to iterate over the total number of digits. On each iteration, the count variable value is incremented by 1. Refer to the do while loop in C.
#include <stdio.h>
int main()
{
int n, count = 0;
printf("Enter any Number = ");
scanf(" %d", &n);
do
{
n /= 10;
count += 1;
} while(n != 0);
printf("Number of Digits = %d", count);
return 0;
}
Enter any Number = 98765
Number of Digits = 5
Logarithmic approach to count the number of digits in C
In the following example, we use the C conditional operator and the C log10 function. As we know, if we pass 0 to the log10 function, it returns -Inf, so we must handle 0. Here, the ternary operator checks whether the user enters 0. If true, count becomes 1. Otherwise, the log10() function counts the total number of digits in the given integer.
#include <stdio.h>
#include <math.h>
int main()
{
int n, count = 0;
printf("Enter any Number = ");
scanf(" %d", &n);
count = (n == 0) ? 1 : log10(n) + 1;
printf("Number of Digits = %d", count);
}
Enter any Number = 34567
Number of Digits = 5
Count the number of digits using repeated multiplication
In the following program, we repeatedly multiply the temp variable by 10 to count the total number of digits in a given number.
#include <stdio.h>
int CountDigits(int n)
{
int count = 0;
int temp = 1;
while (temp <= n)
{
count++;
temp *= 10;
;
}
return count;
}
int main()
{
int Number;
printf("Enter any number = ");
scanf("%d", &Number);
printf("Total Digits Count = %d", CountDigits(Number));
return 0;
}
Enter any number = 2345678
Total Digits Count = 7
Also Read
Comments are closed.