C Program to Count Number of Digits in an Integer

To understand this example, you should have the knowledge of the following C programming topics:


This program takes an integer from the user and calculates the number of digits. For example: If the user enters 2319, the output of the program will be 4.


Program to Count the Number of Digits

#include <stdio.h>
int main() {
  long long n;
  int count = 0;
  printf("Enter an integer: ");
  scanf("%lld", &n);
 
  // iterate at least once, then until n becomes 0
  // remove last digit from n in each iteration
  // increase count by 1 in each iteration
  do {
    n /= 10;
    ++count;
  } while (n != 0);

  printf("Number of digits: %d", count);
}

Output

Enter an integer: 3452
Number of digits: 4

The integer entered by the user is stored in variable n. Then the do...while loop is iterated until the test expression n! = 0 is evaluated to 0 (false).

  • After the first iteration, the value of n will be 345 and the count is incremented to 1.
  • After the second iteration, the value of n will be 34 and the count is incremented to 2.
  • After the third iteration, the value of n will be 3 and the count is incremented to 3.
  • After the fourth iteration, the value of n will be 0 and the count is incremented to 4.
  • Then the test expression of the loop is evaluated to false and the loop terminates.

Note: We have used a do...while loop to ensure that we get the correct digit count when the user enters 0.

Before we wrap up, let's put your understanding of this example to the test! Can you solve the following challenge?

Challenge:

Write a function to count the number of digits in a given number.

  • For example, with input num = 12345, the return value should be 5.
Did you find this article helpful?

Our premium learning platform, created with over a decade of experience and thousands of feedbacks.

Learn and improve your coding skills like never before.

Try Programiz PRO
  • Interactive Courses
  • Certificates
  • AI Help
  • 2000+ Challenges