Write a C program to input a number from user and count number of digits in the given integer using loop. How to find total digits in a given integer using loop in C programming. Logic to count digits in a given integer without using loop in C program.

**Example**

**Input**

Input num: 35419

**Output**

Number of digits: 5

## Required knowledge

Basic C programming, While loop

There are various approaches to count number of digits in a given integer. Here, I will explain two logic to count number of digits, using loop and without using loop.

## Logic to count number of digits in an integer

First logic is the easiest and is the common to think. It uses loop to count number of digits. To count number of digits divide the given number by `10` till number is greater than 0. For each iteration increment the value of some `count` variable.

Step by step descriptive logic to count number of digits in given integer using loop.

- Input a number from user. Store it in some variable say
`num`. - Initialize another variable to store total digits say
`digit = 0`

. - If
`num > 0`

then increment`count`by`1`i.e.`count++`

. - Divide
`num`by`10`to remove last digit of the given number i.e.`num = num / 10`

. - Repeat step 3 to 4 till
`num > 0`

or`num != 0`

.

## Program to count total digits in a given integer using loop

```
/**
* C program to count number of digits in an integer
*/
#include <stdio.h>
int main()
{
long long num;
int count = 0;
/* Input number from user */
printf("Enter any number: ");
scanf("%lld", &num);
/* Run loop till num is greater than 0 */
while(num != 0)
{
/* Increment digit count */
count++;
/* Remove last digit of 'num' */
num /= 10;
}
printf("Total digits: %d", count);
return 0;
}
```

## Logic to count number of digits without using loop

The second logic uses logarithms to count number of digits in a given integer.

Total number of digit in a given integer is equal to `log10(num) + 1`

. Where `log10()`

is a predefined function present in `math.h`

header file. It returns logarithm of parameter passed to the base 10. However, you can use it to count total digits using formula `log10(num) + 1`

.

## Program to count number of digits without using loop

```
/**
* C program to count number of digits in an integer without loop
*/
#include <stdio.h>
#include <math.h> /* Used for log10() */
int main()
{
long long num;
int count = 0;
/* Input number from user */
printf("Enter any number: ");
scanf("%lld", &num);
/* Calculate total digits */
count = log10(num) + 1;
printf("Total digits: %d", count);
return 0;
}
```

**Note:** In the above programs I have used `long long`

data type with `%lld`

format specifier. You can use `long`

type with `%ld`

format specifier if `long long`

is not supported by your compiler.

Output

Enter any number: 123456789 Total digits: 9

Happy coding 😉

<pre><code> ----Your Source Code---- </code></pre>