Skip to main content

C program to count number of digits in an integer

 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 programmingWhile 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.

  1. Input a number from user. Store it in some variable say num.
  2. Initialize another variable to store total digits say digit = 0.
  3. If num > 0 then increment count by 1 i.e. count++.
  4. Divide num by 10 to remove last digit of the given number i.e. num = num / 10.
  5. 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 */
    do
    {
        /* Increment digit count */
        count++;

        /* Remove last digit of 'num' */
        num /= 10;
    } while(num != 0);

    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 = (num == 0) ? 1  : (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

Comments

Popular posts from this blog

C program to find prime factors of a number

  Write a C program to input a number from user and find Prime factors of the given number using loop. C program to list all prime factors of a given number. Logic to find prime factors of a number in C programming. Example Input Input any number: 10 Output Prime factors of 10: 2, 5 Required knowledge Basic C programming ,  If statement ,  For loop ,  Nested loop What is Prime factor? Factors of a number  that are  prime numbers  are called as Prime factors of that number. For example: 2 and 5 are the prime factors of 10. Logic to check prime factors of a number Step by step descriptive logic to find prime factors. Input a number from user. Store it in some variable say  num . Run a loop from  2  to  num/2 , increment 1 in each iteration. The loop structure should look like  for(i=2; i<=num/2; i++) . You may think why loop from 2 to  num/2 ? Because prime number starts from 2 and any factor of a number  n  is ...

To Find Factorial Of A Number Using C Program

  Program 1: Factorial program in c using for loop #include <stdio.h> int main (){ int i , f = 1 , num ;   printf ( "Enter a number: " ); scanf ( "%d" ,& num );   for ( i = 1 ; i <= num ; i ++) f = f * i ;   printf ( "Factorial of %d is: %d" , num , f ); return 0 ; } Result Enter a number: 8 Factorial of 8 is: 40320 Program 2: Factorial program in c using pointers #include <stdio.h>   void findFactorial ( int , int *); int main (){ int i , factorial , num ;   printf ( "Enter a number: " ); scanf ( "%d" ,& num );   findFactorial ( num ,& factorial ); printf ( "Factorial of %d is: %d" , num ,* factorial );   return 0 ; }   void findFactorial ( int num , int * factorial ){ int i ;   * factorial = 1 ;   for ( i = 1 ; i <= num ; i ++) * factorial =* factorial * i ; } Result Enter a number: 8 Factorial of 8 is: 40320 Program 3: Factorial progra...

Questions of C Program

1. Write a C program to find the area of a circle. 2. Write a C program to find the area of a triangle. 3. Write a C program to swap two numbers without temp variable (or a third variable) 4. Write a C program to print ASCII value of the character 5. Write a C program to read a character in uppercase and then print in lowercase. 6. Write a C program to swap two numbers with temp variable 7. Write a C program to calculate the average of two number 8. Write a C program to calculate the simple interest. 9. Write a C program to find the quotient and remainder of two numbers 10.Write a C program that displays the size of every datatype. 1. Write a c program to add two integers and print the result ,inputs must be taken using scanf function. 2. Write a c program to add two float numbers without third variable and print the result ,inputs must be taken using scanf function. 3. Write a c program, to subtract two integers and print the result, inputs must be taken using scanf function. 4. Write...