[英]How to extract letters from separate lines and do something with them?
我正在用c ++编写一个程序,该程序接受字母并将其打印出来。 因此,类似:
一个 AAAAA
B BBBBB
C CCCCC
我使用了for循环遍历输入中的所有字母,使用substr提取每个字母,然后找出该字母。 现在,我需要计算第一个垂直位置(粗体字母)中有多少个A(在这种情况下为一个),并计算垂直列中A的百分比。 我怎么做? 我很困惑,我们将不胜感激!
谢谢!
这是代码:
while(s < numberL)
{
sp = word;
s++
for (int i = 0; i < correct.length(); i++)
{
if(answer.at(i) == correct.at(i))
{
word = answer.substr(i,1);
cout << word;
}
if ( answer.at(i) != correct.at(i) && answer.at(i) != '?')
{
word = answer.substr(i,1);
cout << word;
}
if (answer.at(i) == '?')
{
word = answer.substr(i,1);
cout << word;
}
}
}
嗯,最简单的方法是使用字符频率数组 。 基本上,制作一个大小为26的整数数组(或所需的任何数字类型-取决于期望的每个字母有多少个),并简单地跟踪每个字符有多少个。
因此,让我们来看一下您的示例。
当您阅读每一行时,请采用第一个字符并执行以下操作: c - 65
以便将大写字母A转换为代表0,B转换为代表1,C转换为2,依此类推。然后,您可以简单地将索引转换为排列并增加您收到的任何字母的频率。 输出其余的行。
完成所有输出后,再次返回数组并打印出找到的百分比。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.