在for循环外显示句子数组

时间:2014-07-23 14:29:48

标签: c++ arrays

我在for循环

之外显示句子数组时遇到问题
int example(string sentence)
{
  int i = 0;
  for (i; 1 < 50; i++)
  {
    cout<<sentence[i]<<endl;
  }
  cout<<sentence[i]<<endl;
return 0;
}

在for循环之外,句子[i]不显示句子[49]中的字符 谁能告诉我原因?

2 个答案:

答案 0 :(得分:2)

试试这个

int example(string sentence)
{
  int i = 0;
  for ( ; i < 50; i++)
  {
    cout<<sentence[i]<<endl;
  }
  cout<<sentence[i]<<endl;
}

您想检查 i 是否小于50,而不是1是否小于50,因为这将始终为真且循环永远不会终止。另外,在我发布的片段中, i 在循环后将具有值50,因此最好是第51个元素(基于0的数组)。

答案 1 :(得分:0)

它不显示sentence[49]的原因是在循环运行后我是50。在循环迭代运行后,循环中的i++递增i 。因此,当我为49时,它将运行循环,然后将i递增到50.然后它转到条件i < 50,它看到i现在为50并且循环终止。然后,当您在循环外调用sentence[i]时,它会尝试显示sentence[50]。要获得sentence中的最后一个字符,我建议使用以下字符之一:

cout << sentence[i - 1] << endl;

或者更容易阅读:

cout << sentence.back() << endl;