有条件地确定字符串是否是数组的一部分
Finding out if a string is part of an array conditionally
这是我正在开发的一个基本的 c++ 控制台应用程序,只是为了在做一些更高级的事情之前进行测试。我想知道我将如何确定用户输入是否是我的 String 数组的一部分,带有 if 语句,这是到目前为止的代码......
#include <iostream>
#include <string>
using namespace std;
int main(){
string array[] = {"1","2","3"};
for(;;){
cout << "Enter a random number";
int randNum = 0;
cin >> randNum;
if(/* randNum is part of the array */)
{
//do something
}
else{
//do something
}
}
return 0;
}
首先,您显然想在阅读后检查您的输入:
if (cin >> randNum) {
...
}
接下来,我认为您需要对齐类型,即,如果您读取int
您可能希望您的数组也包含int
s:
int array[] = { 1, 2, 3 };
如果给出了这些,您可以像这样检查:
if (std::end(array) != std::find(std::begin(array), std::end(array), randNum)){
...
}
(如果不使用 C++ 2011,则需要其他方法来获取数组的开始和结束迭代器,但有很多方法,包括根据需要定义模板begin()
和end()
)。
如果你真的想根据一个std::string
数组检查int
,你需要一个谓词来检查int
与std::string
。
您可以使用std::find
来实现此目的,但是,您需要先将 randNum 转换为字符串 -
std::stringstream ss;
ss << randNum;
std::string to_check = ss.str();
if(std::find(array, array + 3, to_check) != (array + 3)) {
//Logic
} else {
//
}
相关文章:
- 在 MPI 中共享数组的一部分
- 将constexpr字节数组与缓冲区的一部分(指向数据的指针)进行比较
- 需要从字符串数组的一部分访问元素
- 如何在C++中创建 2d 数组,其中一部分包含循环计数器,另一部分包含数字列表?
- 如何反转数组的一部分?
- 如何在数组的一部分中查找特定值的第一个元素
- 如何在C++中比较数组中字符串的一部分的字符串
- 将字符数组的一部分提取为 char*
- 字符数组仅占用字符串的一部分
- 不允许删除数组的一部分,为什么
- 删除动态数组的一部分
- 如何翻转数组的一部分
- 发送字节数组的一部分
- for循环不包括需要包含数组的一部分
- C++将字符数组的一部分复制到另一个字符数组
- 如何将数组的一部分从 int 转换为浮点数并将值设置为另外两个数组
- 复制存储在内存映射文件中的数组的一部分
- 如何将此INT数组的一部分复制到C 中的另一个数组
- 有条件地确定字符串是否是数组的一部分
- 通过指向函数的指针循环传递数组的一部分