我正在尝试计算一行中出现的字母。但是我的结果是错误的。我将只介绍我认为包含错误的功能。
void readAndCount(int &numWords, int letterCount[])
{
//set letterCount[] numwords initial values
memset(letterCount, 0, 26);
numWords = 1;
char a = ' ';
while(a != '\n')
{
a = getc(stdin);
if (a == ' ' || a == ',' || a == '.' || '\n')
++numWords;
else
if(a >= 'A' && a <= 'Z')
{
++letterCount[a - 'A'];
} else if (a >= 'a' && a <= 'z') {
++letterCount[a - 'a'];
}
}
return;
}
这是一个字符串产生:
3 words
1 a
4194305 g
1 h
3 i
4196355 k
32630 n
4197445 o
32630 r
4197379 s
2 t
4196576 w
32767 z
在读取输入之前,我已经尝试过 fflush()ing stdin。任何指针将不胜感激,但请不要只为我写。