这是我正在处理的基本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;
}
答案 0 :(得分:1)
首先,您明确要在阅读后检查输入:
if (cin >> randNum) {
...
}
接下来,我认为您需要调整类型,例如,如果您阅读int
,您可能希望您的数组也包含int
:
int array[] = { 1, 2, 3 };
如果给出了这些,你可以这样检查:
if (std::end(array) != std::find(std::begin(array), std::end(array), randNum)){
...
}
(如果你不使用C ++ 2011,你需要一些其他的方法来获得你的数组的开始和结束迭代,但有很多方法,包括根据需要定义模板begin()
和end()
如果您确实要针对int
数组检查std::string
,则需要一个谓词来检查int
与std::string
。
答案 1 :(得分:0)
您可以使用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 {
//
}