因此,可以說,一個字符包含字母「a」:如何添加字符的ascii值?
int main() {
int i=8;
char test2[2]="a"+i;
return 0;
}
我只想5添加到該字母的ASCII值的值。因此,test2將包含「h」,因爲h的ASCII值爲a + 8的ASCII值。
有沒有簡單的方法來做到這一點?我試着用google搜索,我認爲這是一件基本的事情,但我顯然錯過了一個簡單的方法來做到這一點。將不勝感激任何幫助。
因此,可以說,一個字符包含字母「a」:如何添加字符的ascii值?
int main() {
int i=8;
char test2[2]="a"+i;
return 0;
}
我只想5添加到該字母的ASCII值的值。因此,test2將包含「h」,因爲h的ASCII值爲a + 8的ASCII值。
有沒有簡單的方法來做到這一點?我試着用google搜索,我認爲這是一件基本的事情,但我顯然錯過了一個簡單的方法來做到這一點。將不勝感激任何幫助。
"a"
不是人物,而是一個字符串。你需要單引號來處理單個字符。
int i = 8;
char c = 'a' + i;
printf("c=%c\n", c);
輸出:
c=i
有沒有編譯這一點,但不會(int)'a' + i
工作?
雙引號不是char
,它是一個字符串文字。
我甚至不確定顯式演員是否必要。 –
字符常量在C中有int類型,所以這會將int轉換爲int。 –
我這麼認爲。謝謝。 –
在C中,字符默認保存一個ACSII值(整數)。你的情況,使^ h出來的,你必須這樣做:
#include <stdio.h>
int main() {
char test2 = 'a' + 7;
printf("%c\n\n", test2); // just check
return 0;
}
雖然'char'是C中的一個('signed'或'unsigned')整數類型,默認情況下編碼是_not_ ASCII;這是一個實現細節,並沒有被標準規定。 –
很高興知道,謝謝 – KillerIsDead
例如,一些IBM系統曾經使用[EBCDIC](https://en.wikipedia.org/wiki/Extended_Binary_Coded_Decimal_Interchange_Code)代替ASCII。在這裏,拉丁字母的字符不會以連續的順序編碼,導致一些ASCII相關的代碼失敗。這個問題在現有系統中仍然存在。 –
你加入我的字符串文字'「一」'的第一個元素的地址。嘗試使用字符常量''a''代替。你也試圖用標量值初始化一個數組。您的編譯器應該警告您,如果沒有,請啓用所有警告。 –
[閱讀一本好初學書](http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list)應該是一個好的開始。 –
'char test2 [2] = {'a'+ i-1};' – BLUEPIXY