在for循环外显示句子数组

Displaying sentence array outside of for loop

本文关键字:句子 数组 显示 for 循环      更新时间:2023-10-16

我在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]中的字符有人能告诉我原因吗?

试试这个

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的数组)。

不显示sentence[49]的原因是循环运行后i为50。循环中的i++在循环迭代运行后增加i 。所以当i等于49时,它将运行循环然后将i增加到50。然后它来到条件i < 50它看到i现在是50循环终止了。然后,当您在循环外调用sentence[i]时,它试图显示sentence[50]。要获取sentence中的最后一个字符,我建议使用以下方法之一:

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

或者更容易读的:

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