if(isalpha(str[i])) pts[i] = code[(int)str[i] - 'a'];

来源:学生作业帮助网 编辑:作业帮 时间:2024/10/01 10:16:22
if(isalpha(str[i])) pts[i] = code[(int)str[i] - 'a'];
xSMo@+$SH8~(HU*`D{#5 $$U14?k:- Aiɻoy3Nӹ\!.۹L<.mNT²\U܈@T X8d" [Lv3A\uY;<ϷO:0QE^Y{|vX8*μUL›.ND0ְ3GP1IEu0Auy-hOJ!88#s/K/+Y}]C;IƉS'x܁l@ˎ{('4xxRd{N*η8➡U6 ,=6=/:-p3Jٽ4KV;=

if(isalpha(str[i])) pts[i] = code[(int)str[i] - 'a'];
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'会返回负索引,应该避免这种情况.