Использование atoi с char - PullRequest
6 голосов
/ 26 мая 2010

Есть ли способ конвертировать символ в строку в C?

Я пытаюсь сделать это так:

   char *array;

   array[0] = '1';

   int x = atoi(array);

   printf("%d",x);

Ответы [ 5 ]

22 голосов
/ 26 мая 2010
char c = '1';
int x = c - '0';
printf("%d",x);
6 голосов
/ 26 мая 2010

Если вы пытаетесь преобразовать числовой символ в целое, просто используйте символьную арифметику, чтобы вычесть код ASCII:

int x = myChar - '0';
printf("%d\n", x);
5 голосов
/ 26 мая 2010

Вам необходимо выделить память для строки, а затем завершить нулем.

char *array;

array = malloc(2);
array[0] = '1';
array[1] = '\0';

int x = atoi(array);

printf("%d",x);

Или, проще:

char array[10];

array = "1";

int x = atoi(array);

printf("%d",x);
3 голосов
/ 26 мая 2010

Как насчет:

   char arr[] = "X";
   int x;
   arr[0] = '9';
   x = atoi(arr);
   printf("%d",x);
2 голосов
/ 26 мая 2010

Вы можете преобразовать символ в строку с помощью следующего:

char string[2];
string[0] = '1';
string[1] = 0;

Строки заканчиваются символом NUL, значение которого равно 0.

...