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

How do you compare a single string to a string array

本文关键字:字符串 比较 数组 单个      更新时间:2023-10-16
string name;
strarray[] = ["Jack", "Tom" , "Jill"]
if(name == strarray)
{
    //implementation here
}

如何使此比较工作

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

标准库有一个名为 find 的函数,它正是这样做的: (包括<algorithm>标头)

std::string strarray[] = {"Jack", "Tom" , "Jill"};
if (std::find(strarray, strarray + 3, name) != strarray + 3) {
    // implementation here
}

您可以使用std::find()

if (std::end(strarray) != std::find(std::begin(strarray), std::end(strarray), name)) {
    // implementation goes here
}

std::begin()std::end() 是 2011 C++中的新增功能,但实现起来微不足道:

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; }
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 :)