繁体   English   中英

如何从单独的行中提取字母并对其进行处理?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM