Comment convertir char en entier en C?

Dupliqués possibles:
Comment convertir un seul caractère dans un int
Caractère entier dans C

Est-ce qu’un organisme peut me dire comment convertir un char en int ?

 char c[]={'1',':','3'}; int i=int(c[0]); printf("%d",i); 

Quand j’essaie ça donne 49.

Auparavant, lorsque nous pouvions supposer que la plupart des ordinateurs utilisaient ASCII, nous le ferions simplement

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

Mais en ces jours d’Unicode, ce n’est pas une bonne idée. Ce n’était jamais une bonne idée si votre code devait s’exécuter sur un ordinateur non-ASCII.

Edit: Bien que cela semble pirate, il est évident que la norme garantit son bon fonctionnement. Merci @Earwicker.

La fonction standard atoi() fera probablement ce que vous voulez.

Un exemple simple utilisant “atoi”:

 #include  int main(int argc, char *argv[]) { int useconds = atoi(argv[1]); usleep(useconds); }