如何将单个字符串与字符串数组进行比较

时间:2012-10-08 00:08:40

标签: c++ string-comparison

string name;
strarray[] = ["Jack", "Tom" , "Jill"]

if(name == strarray)
{
    //implementation here
}

如何使此比较工作

我在这里收到错误,因为一个是字符串,一个是数组字符串。

3 个答案:

答案 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 :)