2010-05-26 6 views
6

C'è un modo per convertire un char in una stringa in C?Utilizzo di atoi con char

sto cercando di farlo in questo modo:

char *array; 

    array[0] = '1'; 

    int x = atoi(array); 

    printf("%d",x); 

risposta

3

stai:

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

È necessario allocare la memoria alla stringa, e quindi Null terminare.

char *array; 

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

int x = atoi(array); 

printf("%d",x); 

Oppure, più facile:

char array[10]; 

array = "1"; 

int x = atoi(array); 

printf("%d",x); 
5

Se stai cercando di convertire un char numerico a un int, basta usare l'aritmetica carattere di sottrarre il codice ASCII:

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

risposta più semplice, senza dover utilizzare alcun buffer intermedi –

2

È possibile convertire un carattere in una stringa tramite:

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

Corde terminano con un carattere nullo, che ha il valore 0.