“ a”代表“ ch = input [c]-'a'”中的1吗?

时间:2019-04-22 16:56:18

标签: c

我一直在处理一些基本的编码挑战,并且遇到过几次“ ch = input [c]-'a'”语法,我希望在继续之前先了解它。

n = strlen(input);
for (c = 0; c < n; c++) {
    ch = input[c] - 'a';
    no[ch]++;
}

2 个答案:

答案 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中为任何字母分配了足够的空间。