C ++将字符串与字符串数组进行比较

时间:2013-09-11 13:31:02

标签: c++ arrays

如果我有:

const string food[] = {"Burgers", "3", "Fries", "Milkshake"}
string word;
cin >> word;

如何将单词与正确的食物进行比较?或者更确切地说,如果用户输入“Fries”,我该如何将其与字符串数组进行比较?

2 个答案:

答案 0 :(得分:7)

使用find

#include <algorithm>
#include <iterator>

auto it = std::find(std::begin(food), std::end(food), word);

if (it != std::end(food))
{
    // found *it
}
else
{
    // not found
}

答案 1 :(得分:3)

使用find中的<algorithm>算法:

auto found = std::find(std::begin(food), std::end(food), word);
if (found == std::end(food)) {
    // not found
} else {
    // found points to the array element
}

或循环:

for (const auto &item : food) {
    if (item == word) {
        // found it
    }
}

但是,如果您需要做很多事情,最好将这些项目存储在专为快速搜索而设计的数据结构中:std::setstd::unordered_set