2015-08-17 64 views
-1

我想把int變成72, 101, 108'72', '101', '108'把int轉成char C

原始程序是我讀取字符串"Hello\n"爲例,然後獲取每個字符的ASCII值,然後將這些int放入char數組中。

我想:

int a = 72; 
char b = (char)a; 

但這將INT從ASCII轉換回字符。

我也試過:

int a = 72; 
char b = a + '0'; 

但是,這只是沒有在所有的工作。

這是我有:

char buff[128]; 
strcpy(buff, "Hello\n"); 

char tmp[128]; 
bzero(tmp, 128); // initialize array 

int n = 0; 
while(buff[n] != '\n') { 
    int ascii = (int)buff[n]; 
    en[n] = (char)ascii; // RIGHT HERE 
    n++; 
} 
strcat(tmp, "\n"); 

fprintf(stdout,"%s", tmp); 

回答

5

從什麼時候起,這些'72', '101', '108'成爲字符? Char值存儲在1個字節中。可以使用sprintfsnprintf。將整數轉換爲char數組。

int c = 4; 
char tin [Some_Length]; 
sprintf(tin , "%d", c); 

或者

snprintf(tin , Some_Length, "%d", c); 
+0

噢,你是對的 – PTN