1
A
回答
6
他們是隱式轉換...
int x = 65;
char c = x; // 'A'
putchar(x);
printf("%c", x);
char asciiz[] = { 65, 32, 66, 32, 67, 0 };
你可以用例如做明確(char)65
,在C++中特別有用,其中重載和模板使寫代碼的行爲有所不同,具體取決於常用類型。
如果你實際上意味着得到一個數的(可能是多重)字符表示,那麼你就可以用printf(「%d」,X)將其打印到標準輸出,或:
char buffer[16]; // biggest int is 4 billion so ~10 chars, round up for safety
sprintf(buffer, "%d", x);
// say x was 128, buffer now contains [0] = '1', [1] = '2', [2] = '8', [3] = NUL.
1
簡單的答案是:
(char)my_int;
但是,一個簡單的char
可能不是你真正想要的東西。在C中,有char','unsigned char'和「plain」char
。不幸的是,如果一個普通的char
是有符號或無符號的,它就是實現定義的。所以,如果你打算在一個很重要的環境中使用down-cast整數,一定要選擇正確的字符類型。
0
如果你指得到的整數位1,2,3,4,5,6,7,8,9和0炭表示,則可以簡單地做這樣的:
char ToChar(int value)
{
assert(value >= 0 && value <= 9);
return '0' + value;
}
如果你想包括十六進制數字混進去,你可以這樣做:
char ToChar(int value)
{
assert(value >= 0 && value <= 15);
return value < 10 ? '0' + value : 'a' + value - 10;
}
這隻會工作,雖然,如果角色是從「0」字符集責令「9」。我從來沒有聽說過一個沒有這個屬性的字符集。
+0
''0'到''9'在C中保證是連續的。''''到''z'通常是,但是沒有保證。 – 2011-03-11 09:53:20
相關問題
- 1. 將char轉換爲整數表示c#
- 2. 想要將整數值轉換爲char中的char格式
- 3. 將char *轉換爲char? C++
- 4. int轉換爲char * C++中
- 5. 在C++中將Char轉換爲整數的問題
- 6. 整型到char數組轉換C
- 7. 在C++中將char *轉換爲const char *
- 8. 轉換^爲char *的WinForms C++
- 9. C/C++轉換一個64位整數爲char陣列
- 10. 轉換爲unsigned char無符號整數*
- 11. 轉換INT爲char *給ASCII值C++
- 12. 將16位整數轉換爲char數組? (C++)
- 13. 轉換爲C char數組的Python長整型
- 14. C++的char * []到char **轉換
- 15. 將整型參考值轉換爲(const char *)有什麼作用,以及在C++中轉換爲char *和轉換爲const char *有什麼區別?
- 16. 將wchar_t轉換爲char C++
- 17. 從uint8_t *轉換爲char * C
- 18. C++ - 轉換結構爲char
- 19. C++ - 轉換FILE *爲char *
- 20. C#將Char轉換爲KeyValue
- 21. 如何將System :: Char轉換爲C++ char
- 22. C++將char轉換爲const char *
- 23. char *轉換爲char *
- 24. gmp值轉換爲char *
- 25. 將char轉換爲ascii值
- 26. 將int轉換爲C中的char?
- 27. 從的std :: string轉換爲char * C++中
- 28. 將Char列表轉換爲整數列表C#
- 29. 我如何將整數轉換爲char * C++
- 30. 整數如何自動將char轉換爲ASCII值?
它給出了一些奇怪的字符... – erogol 2011-03-11 09:41:11
好吧,備份,你想要做什麼?例如,如果您有一個整數65,並將其轉換爲字符,它仍然是65,但它會打印爲A,因爲A的ascii代碼是65.如果要打印「65」那麼你應該把它作爲一個整數來打印,即當使用'printf'時使用'%d'。 – Lindydancer 2011-03-11 09:47:22