Как преобразовать char в integer в C?
Возможные дубликаты:
Как преобразовать один char в int
Символ к целому числу в C
Может ли кто-нибудь сказать мне, как преобразовать char
в int
?
char c[]={'1',':','3'};
int i=int(c[0]);
printf("%d",i);
Когда я пытаюсь это сделать, он дает 49.
Ответы
Ответ 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);
}