我一直在处理一些基本的编码挑战,并且遇到过几次“ ch = input [c]-'a'”语法,我希望在继续之前先了解它。
n = strlen(input);
for (c = 0; c < n; c++) {
ch = input[c] - 'a';
no[ch]++;
}
答案 0 :(得分:3)
'a'=97
格式基于ASCII表
而当您要使用字母和数字作为数字时,它将很有用。
该程序希望计算输入中每个字母的数量 因此可以很好地增加数组的索引,该索引与您的字母索引相同。
我们看到'a'
是48
,例如对于'b'
,ch=49-48=1
因此在index=1
中您将看到cb[index]+=1
答案 1 :(得分:1)
ch = input[c] - 'a';
no[ch]++;
数组no
将 i th 的计数保留在 i th 元素中字符串input
中的小写字母。
但是,如果输入中包含小写字母以外的其他字符,则代码可能会中断。另一方面,假设您在no
中为任何字母分配了足够的空间。