c++ - 有没有办法在 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;
}
解决方案
好的,所以我在函数'.'
内部的if
语句中使用了句fillUpArray()
点,但是为什么句点字符起作用而不是像数字一样呢?
推荐阅读
- c# - 在除最后一个之外的所有值都符合条件之后,如何使我的代码输出逗号
- java - 发送kafka字符串消息java以在其他java上启动程序
- amazon-quicksight - 将 AWS QuickSight 分析复制到另一个账户
- android - MediaCodec 视频创建太快
- aws-lambda - 使用 aws sam local 访问写入 /tmp 的文件
- assembly - 通过堆栈推送和弹出相同的寄存器
- sql - 为什么这个简单的 SQL 代码在 Azure Databricks 中不起作用?
- reactjs - 反应在表格中导入选定的值
- java - 充气城堡 PGPObjectFactory nextObject 返回 null
- python - 如何在获取帧时减少 CPU 使用率