Как преобразовать символ в целое число в 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);
}