2010-05-26 6 views
6

Existe-t-il un moyen de convertir un caractère en chaîne de caractères dans C?Utilisation de atoi avec char

Je suis en train de le faire comme ceci:

char *array; 

    array[0] = '1'; 

    int x = atoi(array); 

    printf("%d",x); 

Répondre

3

Que diriez-vous:

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

Vous devez allouer de la mémoire à la chaîne, puis mettre fin à NULL.

char *array; 

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

int x = atoi(array); 

printf("%d",x); 

Ou, plus facile:

char array[10]; 

array = "1"; 

int x = atoi(array); 

printf("%d",x); 
5

Si vous essayez de convertir char numérique à un int, il suffit d'utiliser l'arithmétique de caractères pour soustraire le code ASCII:

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

réponse sans avoir Simplest utiliser des tampons intermédiaires –

2

Vous pouvez convertir un caractère en une chaîne via l'adresse suivante:

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

cordes se terminent par un caractère NUL, qui a la valeur 0.

Questions connexes