Converting a char into an int


I'm trying to convert the content of a char array (made of numbers) into an int (or at least an array of integers); something like passing data from char serialNum[n] to int calculateNum[n].

The atoi() function from the stdlib library seems like it could do the trick but i havn't been able to use it properly so far.


What do you mean by a character array?

Do you mean

char serialNum[] = { '1', '2', '3', '4', '5' }


char serialNum[] = "123456";

If you mean something like the first, then that would be the source of the problem with the atoi function. This function expects to receive a 'c' language string which has a '\0' as the last character of the array. If you were to look at the memory map for the second version you would see this terminating null.

value = atoi(serialNum) should work for the second definition of serialNum.

If the first definition was modified to:

char serialNum[] = { '1', '2', '3', '4', '5', '\0' }

It would work also.

This is great.
I meant char serialNum = { ‘1’, ‘2’, ‘3’, ‘4’, ‘5’ }.
Putting ‘\0’ manually at the end of the array did it, i just added
serialNum[5] = ‘\0’
and the atoi function now runs properly.
Thank you very much!