Как использовать вектор для передачи нескольких строк в функцию - PullRequest
0 голосов
/ 30 января 2019

У меня есть функция, которая читает файл, чтобы найти определенное слово.Система, которую я сейчас искал, однако искала определенное слово и не чувствительна к регистру.Я не могу просто использовать .find ("word" && "Word")

Насколько я могу сказать, самый простой способ сделать это - использовать вектор с обеими версиями слова дляФункция для поиска обоих, однако я не могу понять, как передать вектор в функцию.

Любая помощь будет оценена.Спасибо

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Вы можете просто вызвать find для каждого возможного слова в вашем векторе.Но я бы предложил использовать только строчные буквы, если это возможно

#include <algorithm>
#include <string>
#include <vector>
#include <iostream>
int main()
{
    std::string str = "HeLlo WorLd";
    std::vector<std::string> vec{ "HELLO","HeLlo","hEllO","WORLD","WorLd" };

    std::for_each(vec.begin(), vec.end(), [&](const std::string& comp) 
    {
        auto found = str.find(comp);
        if (found != std::string::npos)
            std::cout << "Found World " << comp << " in str at " << std::distance(str.begin(), str.begin() + found) << std::endl;
    });

    return 0;
}
0 голосов
/ 30 января 2019

В c ++ вы можете передать вектор в функцию в качестве ссылки или абсолютного значения.Чтобы передать в качестве ссылки, вы можете следовать этому подходу.

int fun(std::vector<std::string>& arr) {
    int value = 0;
    // your operation
    return value;
}

int main() {
    std::vector<std::string> arr;
    // your logic
    int value = fun(arr);
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...