The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Just a quick question.

How do we convert 10,000 to 10000?

I read the number using char array from a file, and want to copy thearray to an integer variable. Is that possible?

How do we convert 10,000 to 10000?

I read the number using char array from a file, and want to copy thearray to an integer variable. Is that possible?

if you don't use library calls.

like this:

while(x < array_size)

num = num * 10;

num = num + array[x];

x = x + 1;

}

just add checks to skip commas.

x and num start at zero

and 'array_size' should be the actual length of the string

num = num + (array[x]-'0')

or if you prefer

num = num + charToDigit(array[x])

int charToDigit(char v)

{

switch(v) {

default: return 0; break;

case '0': return 0;

case '1': return 1;

case '2': return 2;

case '3': return 3;

...

}

}

#include <cstdlib> to get atoi and <ctypes> to get isdigit, if I recall correctly.

num=0;

for(unsigned int c=0; c < arraysize; c++){

if( isdigit( myarray[c] )){

num*=10;

num += atoi(myarray[c]);

}

}

and that segment passes an invalid input to atoi()

Moreover, building a string just to use atoi() would be

wasteful, and there's no reason to go through all the

trouble involved.

int num = 0, x = 0;

while(x < array_size)

if (!isdigit(x)) {

/* Detect, skip invalid characters, report such errors as per the needs

of your situation*/

continue;

}

num = num * 10;

num = num + (array[x] - '0');

x = x + 1;

}

I am doing this

void read_byte( unsigned char byte)

{

....

....

if(byte == 44)

{}

else

array[i++] = byte;

}

The problem is I dunno how to make it display as an integer say 12345, instead of digit 1 digit 2 digit 3 digit 4 digit 5.

the maximum value is INT_MAX

the minimum value is called INT_MIN

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.

integers.

It can trivially be extended to negative integers by handing the -.

Consider input digits

D0 D1 D2 D3 D4

What does it mean for a digit to be in the position on the far right?

Why it means that it is multiplied by 10^0

Second position is weighted as 10^1, Third position from the right

is 10^2, etc.

Ok, What's num equal to after reading all four example digits then?

Well consider Num_[NNN] as a representation of num after the NNNth iterate

The first iterate of the loop is 0 what is Num after that?

Why:

Num_0 = 0*0 + D0

Guess what, it is in general true that for the algorithm:

Num_(i+1) = (Num_i * 10) + D_i+1

And:

Num_1 = Num_0 * 10 + D1 = D0 * 10 + D1

Num_2 = Num_1*10 + D2 = D0*100 + D1*10 + D2

Num_3 = Num_2*10 + D3 = D0*1000 + D1*100 + D2*10 + D3

Num_4 = Num_3*10 + D3 = D0*10000 + D1*1000 + D2*100 + D3*10 + D4

So if you let the four input digits in the example be

D1 = 5

D2 = 4

D3 = 3

D4 = 2

then the result is

num = 5*1000 + 4*100 + 3*10 + 2