Как преобразовать символ в целое число в C?

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

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

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

int i=int(c[0]);

printf("%d",i);

Когда я пытаюсь это дать 49.

2 ответа

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

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

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

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

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

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

#include <unistd.h>

int main(int argc, char *argv[])
{
    int useconds = atoi(argv[1]); 
    usleep(useconds);
}
Другие вопросы по тегам