string name;
strarray[] = ["Jack", "Tom" , "Jill"]
if(name == strarray)
{
//implementation here
}
如何使此比较工作
我在这里收到错误,因为一个是字符串,一个是数组字符串。
答案 0 :(得分:2)
标准库有一个名为find
的函数,它正是这样做的:(包括<algorithm>
标题)
std::string strarray[] = {"Jack", "Tom" , "Jill"};
if (std::find(strarray, strarray + 3, name) != strarray + 3) {
// implementation here
}
答案 1 :(得分:2)
您可以使用std::find()
:
if (std::end(strarray) != std::find(std::begin(strarray), std::end(strarray), name)) {
// implementation goes here
}
std::begin()
和std::end()
是C ++ 2011中的新功能,但实现起来很简单:
template <typename T, int Size> T* begin(T (&array)[Size]) { return array; }
template <typename T, int Size> T* end(T (&array)[Size]) { return array + Size; }
答案 2 :(得分:1)
bool flag=false;
string name;
strarray[] = ["Jack", "Tom" , "Jill"]
//How do I make this comparison work
//I am getting an error here bc one is a string and one is an array string
for(int i=0;i<3;i++)
{
if(name == strarray[i])
{
flag=true;
break;
}
}
if(flag)
//implementation here :)