在结构数组中搜索字符串变量

时间:2018-09-30 12:56:17

标签: c++ visual-c++

考虑:

const int CAP = 20;
struct bookType
{
    string bookTitle = "EMPTY";
    string ISBN = "EMPTY";
    string author = "EMPTY";
    string publisher = "EMPTY";
    string dateAdded = "EMPTY";
    int qty = 0;
    double wholesale = 0.00;
    double retail = 0.00;

};bookType book[CAP];

我希望在这里做的很简单,尽管我似乎无法得到一个直接的答案。我想在此结构数组(book [])中搜索匹配的bookTitle。例如,如果我有一本名为《星球大战》的书,我需要能够通过键入“ star”并找到一本书“ Star Wars”来搜索结构体数组。我一直在搜索几个小时,但是我发现的所有解决方案似乎都没有真正起作用。

1 个答案:

答案 0 :(得分:2)

我不知道其余的代码,所以我将尝试给出一个通用的答案。

似乎您正在寻找字符串对象的find()函数。如果找不到任何内容,find函数将返回std :: string :: npos。

因此,在循环中进行测试:

Booktype[x].bookTitle.find("Star")!=std::string::npos

将“星号”更改为您要搜索的内容。如果此条件为真,则您具有匹配项。

请注意,这是区分大小写的,因此您可能需要创建临时变量并将标题和查询转换为小写并在其上运行循环。

希望这会有所帮助。