古詩詞大全網 - 成語查詢 - if(isalpha(str[i])) pts[i] = code[(int)str[i] - 'a']; 這句是什麽意思

if(isalpha(str[i])) pts[i] = code[(int)str[i] - 'a']; 這句是什麽意思

isalpha(str[i])判斷數組str的第i個元素(即字符串的第i個字符)是否為英文字符(即是否為'a'~'z'或'A'~'Z')

(int)str[i] 將字符串的第i個字符做強制類型轉換,轉換為整型

(int)str[i]-'a' 將str[i]與'a'相減,得到str[i]相對於'a'的偏移量。比如:假設str[i]為'b'的話,str[i]-'a'就等於1;如果str[i]為'h'的話,str[i]-'a'就等於7。

code[]數組是壹個編碼數組,它可以將'a'~'z'的字符映射為其他的數值。

整句話的意思是:

如果str[i]屬於'a'~'z'之間的字符的話,那麽將其通過code[]編碼數組的轉換,轉換為其他的數值。

註意,isalpha()不僅對'a'~'z'之間的字符返回真值,而且對'A'~'Z'之間的字符也返回真值,所以該句代碼中(int)str[i]-'a'會返回負索引,應該避免這種情況。