簡體   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