How to convert char to integer in C? [duplicate] How to convert char to integer in C? [duplicate] c c

How to convert char to integer in C? [duplicate]


In the old days, when we could assume that most computers used ASCII, we would just do

int i = c[0] - '0';

But in these days of Unicode, it's not a good idea. It was never a good idea if your code had to run on a non-ASCII computer.

Edit: Although it looks hackish, evidently it is guaranteed by the standard to work. Thanks @Earwicker.


The standard function atoi() will likely do what you want.

A simple example using "atoi":

#include <stdlib.h>#include <unistd.h>int main(int argc, char *argv[]){    int useconds = atoi(argv[1]);     usleep(useconds);}