Насчёт ошибки -
std::vector<T>
не имеет у себя функции поиска (find).
Так же ещё одна ошибка - невозможно преобразовать тип
std::vector<std::string>>
в
std::string
, как это и было сделано тут -
src = src.substr(begin, end - begin);
.
Предлагаю свой способ используя
итераторы.
И на будущее - лучше не вставлять значения просто так в код, а и использовать
#define / enum..
Чтобы напечатать саму строку, достаточно просто написать
std::cout << str;
.
Насчёт паузы перед выходом программы - в С++ лучше забыть про
conio.h, всё уже есть в библиотеке
iostream. Достаточно просто написать -
std::getchar();
, а так же, если пишете программу для ОС Windows, то можно использовать
std::system("pause");
.
#define BEG_TAG_LEN 13
#define END_TAG_LEN 14
std::string str = "";
bool found = false;
size_t beg = 0;
for (std::vector<std::string>::iterator it = src.begin(); it != src.end() && !found; ++it)
{
if ((beg = it->find("<keyMaterial>")) != std::string::npos)
{
found = !found;
beg += BEG_TAG_LEN;
str = it->substr(beg, (it->length() - beg - END_TAG_LEN));
}
}
std::cout << str << std::endl << std::endl;