2010-05-26 5 views
6

¿Hay alguna forma de convertir un carácter en una cadena en C?Usando atoi con char

Estoy tratando de hacerlo de esta manera:

char *array; 

    array[0] = '1'; 

    int x = atoi(array); 

    printf("%d",x); 

Respuesta

3

¿Qué tal:

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

Es necesario asignar memoria a la cadena, y luego terminar nula.

char *array; 

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

int x = atoi(array); 

printf("%d",x); 

O, más fácil:

char array[10]; 

array = "1"; 

int x = atoi(array); 

printf("%d",x); 
5

Si usted está tratando de convertir un char numérica a un int, sólo tiene que utilizar la aritmética carácter para restar el código ASCII:

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

respuesta más simple y sin tener que utilizar ningún buffers intermedios –

2

Puede convertir un carácter en una cadena a través de lo siguiente:

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

cadenas terminan con un carácter NUL, que tiene el valor 0.

Cuestiones relacionadas