Length of a longggg integer !?? - C ?

rforravi's Avatar, Join Date: Aug 2008
Go4Expert Member
hey.

I'm just trying to find out the length of a long int in C.

I'm trying to accept a number from the user as :

{
long int i;

printf("Enter a no: ");
scanf("&ld", &i);

..
......

}

The user can give any integer for i -- lets say from 1 digit to 20 digits
So, how do i find the length of the number he gives?
Suppose say he enters " 62351235123512" it should display length=14

Also, I'm unable to get if i need to specify as 'long' or 'double' when declaring ' int i' ??
Please help me on this.
I've tried using ' itoa' function and also sprintf() function but unable to get it !!

Thx
Deadly Ghos7's Avatar, Join Date: Dec 2009
Contributor
your scanf(); might have fault... %ld should have been used. Check with that.
rforravi's Avatar, Join Date: Aug 2008
Go4Expert Member
oh sorry.
it was a typo in my above post.

It doesn't work with %ld too . in scanf !!
xpi0t0s's Avatar, Join Date: Aug 2004
Mentor
Read it in as a string instead of as a number. Then you can do strlen on it, and you can use atoi and other functions if the length is short enough, or you can use your own custom functions to convert it into some binary representation if it won't fit into the C types.