所以,在这个程序中我们必须
一个。计算在字符数组中找到的字母表中每个字母的数量,并将这些计数存储在整数数组中
我理解那部分,但后来它说我们必须使用困扰我的ASCII值。
这是供参考的文件:
" A frog walks into a bank and asks the teller, Miss Pattywack
for a loan. Miss Pattywack tells the frog,
"you must have collateral for the loan".
The frog pulls out of his pouch his porcelain people collection
and offers them as collateral.
Miss Pattywack looks at the figurines and tells the frog that
the collection is not acceptable.
The bank manager overhears the conversation and yells to the
teller - "It's a nick nack Pattywack, give the frog a loan!"
使用for循环检查字符数组中的每个字符
我。使用toupper来表示字母,所以你只处理大写字母
II。如果字符是字母表中的字母,则在字符的ASCII值减去65的位置递增整数数组
1)65是字母的ASCII值,'A'
(1)如果字符是A,65-65 = 0你想为字符A增加的位置
(2)如果字符是C,则67-65 = 2要为字符C增加的位置
到目前为止,我有这个:
void CountAlphabetCharacters(char chArray[MAX_CHARACTERS], int lengthOfArray)
{
int index;
for(index = 0; index <= lengthOfArray; index++)
{
chArray[index] = toupper(chArray[index]);
static_cast<int>(index);
}
}
这就是我所拥有的,因为这就是我所理解的。我的意思是,我理解你是如何获得ASCII值的,但我对于如何为此实际制作for循环感到很遗憾。就像我假设你看看文件中的字符,但我不明白你是如何得到你的价值并继续前进的。我不知道我是否有意义,但我希望我这样做,有人可以帮助!提前谢谢。
答案 0 :(得分:0)
void CountAlphabetCharacters(char chArray[MAX_CHARACTERS], int lengthOfArray)
{
int index;
int counter[26]={0}; // holds occurrence of each character
for(index = 0; index < lengthOfArray; index++)
{
if(isalpha(chArray[index]){
int val = (int)toupper(chArray[index]);
counter[val-65]++; //increment occurrence count for this character
}
}
for(char c ='A',index = 0; index <26; index++,c++)
{
printf("%c : %d", c, counter[index]); //print character and corresponding occurrence
}
}
答案 1 :(得分:0)
您需要的东西:
chArray
就是那个数组。CountAlphabetCharacters
中的代码,浏览chArray
中的字符,并更新chArray
中的字母数。在调用CountAlphabetCharacters
之前,创建用于保存字符数的数组。
int charCountArray[26] = {0};
更改函数CountAlphabetCharacters
以接受它作为参数。
void CountAlphabetCharacters(char chArray[MAX_CHARACTERS],
int charCountArray[],
int lengthOfArray)
在CountAlphabetCharacters
的调用中将其用作参数。
更新CountAlphabetCharacters
。
void CountAlphabetCharacters(char chArray[MAX_CHARACTERS],
int charCountArray[],
int lengthOfArray)
{
int index;
int ch;
for(index = 0; index <= lengthOfArray; index++)
{
// The character at the index.
ch = chArray[index];
// Check whether it is an alphabetical character.
if ( isalpha(ch) )
{
// If so, make it the uppercase letter.
ch = toupper(ch);
// Increment the charCountArray for the letter.
charCountArray[ch-'A']++;
}
}
}