2010-05-26 3 views

ответ

3

Как насчет:

char arr[] = "X"; 
    int x; 
    arr[0] = '9'; 
    x = atoi(arr); 
    printf("%d",x); 
5

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

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); 
5

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

int x = myChar - '0'; 
printf("%d\n", x); 
20
char c = '1'; 
int x = c - '0'; 
printf("%d",x); 
+0

простейшие ответа без необходимости использования каких-либо промежуточных буферов –

2

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

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

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