Подтвердить что ты не робот

Как преобразовать char в integer в C?

Возможные дубликаты:
Как преобразовать один char в int
Символ к целому числу в C

Может ли кто-нибудь сказать мне, как преобразовать char в int?

char c[]={'1',':','3'};

int i=int(c[0]);

printf("%d",i);

Когда я пытаюсь это сделать, он дает 49.

4b9b3361

Ответ 1

В старые времена, когда мы могли предположить, что большинство компьютеров использовали ASCII, мы просто сделали бы

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

Но в эти дни Unicode это не очень хорошая идея. Никогда не было хорошей идеи, должен ли ваш код работать на компьютере, отличном от ASCII.

Изменить: хотя это выглядит хакерским, очевидно, что стандарт работает. Спасибо @Earwicker.

Ответ 2

Стандартная функция atoi(), скорее всего, сделает то, что вы хотите.

Простой пример с использованием "atoi":

#include <unistd.h>

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