Нахождение длины целого числа в C - PullRequest
54 голосов
/ 18 июня 2010

Хотелось бы узнать, как найти длину целого числа в C.

Например:

  • 1 => 1
  • 25 => 2
  • 12512 => 5
  • 0 => 1

и т. Д.

Как это сделать в C?

Ответы [ 23 ]

0 голосов
/ 04 января 2014

На мой взгляд, самое короткое и простое решение будет:

int length , n;

printf("Enter a number: ");

scanf("%d", &n);

length = 0;

while (n > 0) {
   n = n / 10;
   length++;
}

printf("Length of the number: %d", length);
0 голосов
/ 19 мая 2013

Я думаю, что я нашел самый эффективный способ найти длину целого числа это очень простой и элегантный способ вот оно:

int PEMath::LengthOfNum(int Num)
{
int count = 1;  //count starts at one because its the minumum amount of digits posible
if (Num < 0)
{
    Num *= (-1);
}

for(int i = 10; i <= Num; i*=10)
{
     count++;
}      
return count;
                // this loop will loop until the number "i" is bigger then "Num"
                // if "i" is less then "Num" multiply "i" by 10 and increase count
                // when the loop ends the number of count is the length of "Num".
}
0 голосов
/ 18 июня 2010

продолжайте делить на десять, пока не получите ноль, а затем просто выведите количество делений.

int intLen(int x)
{
  if(!x) return 1;
  int i;
  for(i=0; x!=0; ++i)
  {
    x /= 10;
  }
  return i;
}
...