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, 10 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, 10 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