void main()
{
string s, Letter;
cin >> s;
int count[26], i, s_i;
for (i = 0; i < 26; i++)
count[i] = 0;
int n = sizeof(s);
for (i = 0; i < n; i++)
{
s_i = s[i] - 'a';
count[s_i]++;
}
for (i = 0; i < 26; i++)
{
if (count[i] != 0)
{
Letter = 'a' + i;
cout << Letter << " : " << count[i] << endl;
}
}
}
这是一个程序来计算字符串的字母数。 s_i = s [i] - 'a'是什么意思?特别是,为什么使用 - 'a'?有没有其他方法来计算字母?s_i = s [i] - 'a'是什么意思?
想一下“a” - “a”是什么意思。那么,'b' - 'a''意味着什么。 –
'a'+ 1 ='b','a'+ 2 ='c' – tofutim
s_i = s [i] - 'a'。这用于从0开始获取索引。这里简单地说明了两个字符的ASCII值的区别。 '''表示s_i = 98(字符'b'的ASCII值) - 97(字符'a'的ASCII值)= 1 –