for循环中的C ++字符串

时间:2015-02-07 18:58:20

标签: c++

我正在尝试编写一个将DNA转录为RNA的程序,但我无法弄清楚如何让程序输出一个字符串。我知道它涉及声明一个字符串并在for循环中使用它。到目前为止,我所拥有的程序只输出单个变量的正确答案。这就是我所做的:

#include <iostream>
using namespace std;

int main() 
{
   cout << "> ";
   cin >> dna;
   string dna;
   cout "< ";
        if (a == 'A') cout << 'U';
   else if (a == 'C') cout << 'G';
   else if (a == 'G') cout << 'C';
   else if (a == 'T') cout << 'A';
   cout << " " << endl;
}

3 个答案:

答案 0 :(得分:1)

#include <iostream>
#include <string>

int main() {
    std::string dna;
    std::cout << "Type a DNA String\n> ";
    std::cin >> dna;
    std::cin.ignore();
    std::cout << "< ";
    int i = 0;
    for (; i < dna.size()`enter code here`; i++) {
      if (dna[i] == 'A') {
        std::cout << "U";
      }
      else if (dna[i] == 'T') {
        std::cout << "A";
      }
      else if (dna[i] == 'C') {
        std::cout << "G";
      }
      else if (dna[i] == 'G') {
        std::cout << "C";
      }
      else return 1;
    }
    return 0;
}

它要求输入字符串,然后循环并通过条件确定要输出的内容。

要看的事情:

  1. 在定义
  2. 之前声明
  3. 不要比较整个字符串
  4. 提前考虑并设置错误处理。

答案 1 :(得分:1)

您的代码doesn't compile。你可能想写这样的东西

#include <iostream>
#include <string>

using namespace std;

int main ()  {
    cout << "> ";
    string dna; // << put the declaration 1st
    cin >> dna;
    cout << "< ";
    for(auto a : dna) {
        switch(a) {
        case 'A': cout << 'U';
           break;
        case 'C': cout << 'G';
           break;
        case 'G': cout << 'C';
           break;
        case 'T': cout << 'A';
           break;
        }
    }           
    cout << " " << endl;
    return 0;
}

Here's the completely fixed and running version.

答案 2 :(得分:0)

您只需使用此代码即可。注意您的程序有几个错误尝试逐步修复它们,首先需要在使用它之前声明变量或者需要编写语句cout&lt;&lt;“&lt;”; cout“&lt;”;

#include <iostream>
using namespace std;

int main()
{
   string dna;
   char a;
   cout << "> ";
   cin >> dna;

   cout << "< ";
   for(int i=0 ; i<dna.size() ;i++){

        a = dna[i];
        if (a == 'A') cout << 'U';
        else if (a == 'C') cout << 'G';
        else if (a == 'G') cout << 'C';
        else if (a == 'T') cout << 'A';
   }
   cout << " " << endl;
}