C Program to Count the Number of Digits in an Integer

In this tutorial, you will learn how to count the number of Digits in an integer in C programming. You will learn various approaches possible to Count the Number of Digits. But before that, you need to have knowledge of the following topics in C programming.

Explanation:
The following programs simply take the user input and display how many digits are present in that integer.

Example: Consider an Integer “256“, The number of digits present here is 3. Therefore the program displays 3 as a result of the program.

1. C Program to Count the Number of Digits using while loop

The same method is applied if you want to do it with the for a loop. Instead of while loop, use for loop in the calculation part, the rest remains the same

#include <stdio.h>

int main()
{
  // variable declaration
  int num;
  int count = 0;

  //user Input
  printf("Enter the integer: ");
  scanf("%d", &num);

  //calculation
  while (num != 0)
  {
    num = num / 10;
    count++;
  }

  printf("The number of digits present are: %d", count);
  return 0;
}

Output:


2. C Program to Count the Number of Digits using math library function

Here, we will not use any loops to calculate the result. We will use one of the inbuilt functions provided by the math library in C language and in a single line. The logarithmic function will be helpful in such a program.

log10(num)+1, where log10() is the predefined function in math.h header file.

#include <stdio.h>
#include <math.h>

int main()
{
  // variable declaration
  int num;
  int count = 0;

  //user Input
  printf("Enter the integer: ");
  scanf("%d", &num);

  //calculation
  count = (num == 0) ? 1 : log10(num) + 1;

  printf("The number of digits present are: %d", count);
  return 0;
}

Output:


3. C Program to Count the Number of Digits using function

A separate function is created in the program and the integer value is passed as an argument in the program as shown below.

#include <stdio.h>

int calculate(int n); //function prototype

int main()
{
  // variable declaration
  int num;
  int result = 0;

  printf("Enter the integer: ");
  scanf("%d", &num);

  result = calculate(num);
  printf("The number of digits present are: %d", result);

  return 0;
}

int calculate(int n)
{
  int count = 0;
  while (n != 0)
  {
    n = n / 10;
    count++;
  }

  return count;
}

Output:


4. C Program to Count the Number of Digits using recursion

Here static is used to count. As the recursion function calls itself again and again until the condition is full-filled, so static variable count is declared so that its value doesn’t initialize again and again after the first call.

#include <stdio.h>

int calculate(int n); //function prototype

int main()
{
  // variable declaration 
  int num;
  int result = 0;

  printf("Enter the integer: ");
  scanf("%d", &num);

  result = calculate(num);
  printf("The number of digits present are: %d", result);

  return 0;
}

int calculate(int n)
{
  static int count = 0;

  if (n > 0)
  {
    count = count + 1;
    return calculate(n / 10);
  }
  else
  {
    return count;
  }
}

Output: