【发布时间】:2020-10-25 01:51:42
【问题描述】:
在我的学校开始使用 C++,它看起来比 Python 更令人生畏!希望有人可以指导我。
我创建了一个简单的用户 I/O 来练习从用户输入中提取整数并根据输入形成一个数组。见下文:
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int number_array = {};
string user_input;
cout << "Enter your array range: ";
cin >> user_input;
cout << "You have entered: " + user_input << endl;
return 0;
}
用户在输入时需要遵守这种格式
x-y or x - y (e.g 0-5 or 0 - 5)
我有这个想法,我相信它会起作用,但我无法将它翻译成 C++。
- 程序将从用户输入中提取第一个和最后一个整数,“-”将被删除。我认为正则表达式可以解决问题,但不太确定如何编写代码。
- 根据第一个和最后一个整数,在number_array中形成一个整数数组。例如,0-5 将形成 [0, 1, 2, 3, 4, 5],-4--1 将形成 [-4, -3, -2, -1]。我假设这里需要使用 for 循环。
【问题讨论】:
-
数字是否限制为一位?询问是因为以下答案之一要求数字为一位数。
-
对于#1,您不需要正则表达式(尽管您可以将其用于输入验证)——您只需编写一个辅助方法来清理输入;对于 #2,您可以使用 for 循环或
boost::irange与 C 样式数组或std::array。 -
可以多于一位,比如15-25。
-
@user3118602 如果允许 15-25,您为什么要在问题中谈论数字? 15-25 的预期结果是什么: [1, 2 ... 5] 或 [15, 16, ... 25] ?写问题时请清楚...
-
@bruno 编辑了英文以使其超级清晰。 :)