How to determine the number of digits in C language?

In the C language, one can determine the number of digits in an integer using the following method:

  1. Using a loop and division operation: within the loop, the integer is divided by 10 each time and the quotient is assigned to the integer itself, until the quotient is 0. During the loop, a counter is used to keep track of the number of division operations, i.e. the number of digits in the integer. Example code is as follows:
#include <stdio.h>

int main() {
    int n, count = 0;
    
    printf("请输入一个整数:");
    scanf("%d", &n);
    
    if (n == 0) {
        count = 1;  // 特殊情况,0的位数为1
    } else {
        while (n != 0) {
            n /= 10;
            count++;
        }
    }
    
    printf("该整数的位数为:%d\n", count);
    
    return 0;
}
  1. Based on logarithmic calculations, use the log10() function to calculate the number of digits in an integer. The log10() function returns the logarithm value with base 10, adding 1 to the result will give the number of digits in the integer. It is important to note that since the log10() function returns a floating-point number, appropriate data type conversion is required. Sample code is as follows:
#include <stdio.h>
#include <math.h>

int main() {
    int n, count;
    
    printf("请输入一个整数:");
    scanf("%d", &n);
    
    if (n == 0) {
        count = 1;  // 特殊情况,0的位数为1
    } else {
        count = (int)log10((double)n) + 1;
    }
    
    printf("该整数的位数为:%d\n", count);
    
    return 0;
}

Both methods can be used to determine the number of digits in an integer, the choice of method depends on specific needs and personal programming habits.

bannerAds