Hello, i'm trying to convert a message received with VirtualWire library that starts with an 'R' to an integer, but at this time i couldn't find an explanation to this.
The message received is like "R016" and it is stored in a array like message[3] and i want to convert message to integer (like atoi function does) but except the letter 'R'.
Can you please give me some help?? THANKS in advance!!
blastboot:
Hello, i'm trying to convert a message received with VirtualWire library that starts with an 'R' to an integer, but at this time i couldn't find an explanation to this.
The message received is like "R016" and it is stored in a array like message[3] and i want to convert message to integer (like atoi function does) but except the letter 'R'.
Can you please give me some help?? THANKS in advance!!
How can four letters and a null terminating character be stored in a 3 byte array?
Thanks for the reply! I've corrected the size of array to 4 (message[4]) to store the Rxxx value (forget the \r).
So i basically need to use atoi function and point the beggining of convertion to position [1], is that what int value = atoi (message + 1) do, is that right??
blastboot:
Thanks for the reply! I've corrected the size of array to 4 (message[4]) to store the Rxxx value (forget the \r).
So i basically need to use atoi function and point the beggining of convertion to position [1], is that what int value = atoi (message + 1) do, is that right??
There is no \r
\r is "carriage return". \0 is the end of string marker.
So you have Rxxx\0 - count them... R x x x \0 - I make that 5. Not 4, nor 3. 5.
The variable "message" points to the start of the memory set aside as 5 bytes, so message+1 points to the start plus 1. It is functionally the same as using the & operator (address of) on the second element (message[1]) of the array (&message[1] is "the address of the second element (number 1 counting from 0 - 0, 1, 2, 3, 4) in the array").