Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
11 years, 7 months ago.
Convert string to int
Hi all,
How would I go about converting a string to an integer?
I have this string: "[MAN],0,50,50;"
The values can range between 0 and 100, I split the string up using the commas so that string a = 0, b = 50, c = 50.
How would i convert a,b, and c into integers?
Thanks, Nick
1 Answer
11 years, 7 months ago.
Once you have the string split up you can use atoi to convert them to ints.
This code destroys the original char array and strtok isn't thread-safe, but it sounds like perhaps you have a way of parsing your string already.
#include "mbed.h"
Serial pc(USBTX,USBRX);
int main()
{
char input[] = "[MAN],0,50,50;";
char *token;
int a,b,c;
pc.baud(9600);
pc.printf("input = %s\r\n", input);
token = strtok(input, ",;");
pc.printf("token = %s\n", token);
token = strtok(NULL, ",;");
pc.printf("token = %s\n", token);
a = atoi(token);
token = strtok(NULL, ",;");
pc.printf("token = %s\n", token);
b = atoi(token);
token = strtok(NULL, ",;");
pc.printf("token = %s\n", token);
c = atoi(token);
pc.printf("a=%d; b=%d; c=%d\n", a, b, c);
}
Output
input = [MAN],0,50,50; token = [MAN] token = 0 token = 50 token = 50 a=0; b=50; c=50