首页 > 解决方案 > 有没有办法在 C++ 中的 If 语句中使用适当的布尔条件来停止初始化字符数组?

问题描述

我试图让用户填充最多 10 个字母的字符数组,但他们应该(理论上)能够随时停止输入字母。换句话说,如果用户只想输入 5 个字母,他们应该可以。

我的问题是如何使用某种表达式结构(如 if-else 分支)来退出下面显示的用于初始化和填充数组的 for 循环?

#include <iostream>

const int DECLARED_SIZE = 10; //max size of an array in the main

void fillUpArray(char array[], int size, int& actual_size);
void reverseArray(char array[], int actual_size);

int main()
{
  char letters[DECLARED_SIZE];
  int actualSize;

  fillUpArray(letters, DECLARED_SIZE, actualSize);
  reverseArray(letters, actualSize);

}

void fillUpArray(char array[], int size, int& actual_size) //here is where my question is!
{
  int index;
  char letter;
    std::cout << "Enter up to " << size << " letters. Enter something the loop to stop\n";
    for(index = 0; index < size; index++)
    {
    std::cin >> letter; 
    if(letter == something that stops this loop)
      break;
    else
          array[index] = letter;
    }
    
    actual_size = index;
}

void reverseArray(char array[], int actual_size)
{
  int index;
  for(index = actual_size; index >= 0; index--)
  {
    std::cout << array[index] << "\t";
  }
  std::cout << std::endl;
}

标签: c++arrays

解决方案


好的,所以我在函数'.'内部的if语句中使用了句fillUpArray()点,但是为什么句点字符起作用而不是像数字一样呢?


推荐阅读