我正在做一个字符数通过char c = cin.get()
。我的输出的实施例将是: 一个:53 B:32个 C:29 等。什么原因导致字符数不准确,真的很大?
对于字母表中的一个,我发现了一个大疯狂9位数字。然后当我使用另一个具有更多字符的输入文件时,这些数字是6位数字,太大而不准确。这种表型的任何想法?
再次,对不起,这是学期末的紧缩时间。我很感激那里的任何帮助。
int main (int argc, char *argv[])
{
int count [26] = { };
char alpha [26] = { };
char c;
c = cin.get();
while(!cin.eof())
{
if (isalpha(c))
{
c = tolower(c);
}
count [ c - 'a']++;
alpha [ c - 'a'] = c;
c = cin.get();
}
for (int i = 0; i<26; i++)
{
cout << alpha[i] << ":" << count[i] << endl;
}
} //end main
这里的输出:(编辑)
a:224
b:50
c:70
d:20
e:167772180
f:10
g:40
h:66
i:28
这里的输入:(编辑)
aaaaaaaaAAAAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBBB
制造这些改变,BU t将其仍然“悬”:
c = cin.get();
while(c=cin.get())
{
c = tolower(c);
if (isalpha(c))
continue;
count [ c - 'a']++;
alpha [ c - 'a'] = c;
}
for (int i = 0; i<26; i++)
{
cout << alpha[i] << ":" << count[i] << endl;
}
} //end main
您不应该假定ASCII正在使用中,或者使用'while(!eof())'。改用'while(cin.get(c))'。 – chris
和显而易见的问题,你输入所有26对是吗? –
@KarthikT所有26个字母,一些大写。但是,每个字母要么一致地大写,要么小写。 – harman2012