casting a char to an int, weird result

rabidusv's Avatar, Join Date: Jul 2006
Newbie Member
I'm receiving data from a socket into a char[] and am casting each member of the array to an int. Some of the char's when casted into an int yield the character '-' I'm not sure what to make of this, has anyone ever experienced or heard of anything like this?
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
Can you post the code here so that we can look into it.

Thanks
Shabbir.
rabidusv's Avatar, Join Date: Jul 2006
Newbie Member
Actually I figured it out a couple minutes ago. It was because the array of characters was signed, changed it to an unsigned char array and that solved it. Thanks for the quick reply!!
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
My pleasure.
goldnlink's Avatar, Join Date: Jul 2006
Light Poster
Hi rabidusv,
I would just add that in order to conver a char into an int, you'll have to use the function atoi.
Example:
int number;
char character = '1';
number = atoi(&character);

You could now use this function to extend it to convert a full string (char*) into a number.
Pay attention when converting like you are doing. Remember that '0' has the value 48, not 0. However, atoi(&char) if char = '0' is 0.
regards
goldnlink