Насчёт ошибки -
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;