我不知道 "return ch[c-'A'];&return ch[c-'1' 26]; "在做什么。 下面是uva401--c 中Palindromes的一些代碼。
char ch[36]={'A'/span>, ' ',' '。 ' ','3',' ', ' ','H','I','L',
'','J','M',' ','O', ' ',' ',' ','2', 'T',
'U','V','W','X','Y'。 '5','1','S','E',' ',
'Z',' ',' ','8','};
char rev(char)>。
char rev(char c){
if (isalpha(c)){
return ch[c-'A'];//這一行我不知道它是什么意思。
} else {
return ch[c-'1' 26];//這一行我不知道它的意思。
}
}
uj5u.com熱心網友回復:
C 中的字符變數也是用ASCII值表示的,例如,'A'在ASCII中是65。因此,如果char c = 'B',在ASCII中等于65,按字母順序依次遞增,c - 'A'將意味著66 - 65,等于1。然后這個1的值被用作陣列ch的索引,以遍歷該索引的元素。
char ch[36]={'A, ' ',' '。 ' ','3',' ', ' ','H','I','L',
'','J','M',' ','O', ' ',' ',' ','2', 'T',
'U','V','W','X','Y'。 '5','1','S','E',' ',
'Z',' ',' ','8','};
int c = 'B';
cout << ch[c - 'B']; /Output: A
uj5u.com熱心網友回復:
C 中的字符是由8位整數表示的(暫時不考慮比ASCII更復雜的東西)。例如,'a'是97,而'z'是122。
我們可以用這些做數學運算,而且它們會自動被強制轉換成整數。陣列是以數字為索引的,所以我們可以使用這個數學的結果來查找一個陣列中的條目。
考慮到'A'是65。如果我們從另一個大寫字母中減去這個數字,我們就會得到我們在字母表中的多少個字符。所以'E'-'A'的評估值為4。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/306730.html
標籤:
