с++ работа regex_search

136
19 июня 2022, 21:00

Есть следующий код, занимающийся поиском элементов в строке. Почему-то ф-ия regex_search выдает ошибку в заданных элементах, конкретно в string переменной s. Не могу понять, почему это происходит, ведь первым аргументом функции должна быть string переменная. Что с этим делать?

 #include <iostream>
 #include <fstream>
 #include <regex>
 using namespace std;
 void main()
 {
  ifstream tx("Text.txt");
  string s,temp;
  std::cmatch res;
  std::regex r ("scientist");
  while (tx >> temp)
  {
      s.append(temp);
      s.push_back(' ');
  }
  cout << s;
  std::regex regex_search(s, res, r);
}
Answer 1

Ее надо использовать примерно так (я взял готовую строку, не из файла)

string s = "sav asgyv sadg sd bj jkfseb scientist, djkb, scientisttemp";
std::smatch res;
std::regex r("scientist");
cout << s << endl;;
while (regex_search(s, res, r))
{
    cout << res.str() << " + " << res.suffix() << endl;
    s = res.suffix();
};

То, что вы написали, даже не вызов функции...

READ ALSO
Проблема с нахождением первого цифрового слова С++

Проблема с нахождением первого цифрового слова С++

Программа должна удалять каждое четное слово, дублировать каждое нечетное слово, заменять все вхождения букв 'д ' на 'т' и найти первое цифровое...

98
Освобождение загруженного ресурса

Освобождение загруженного ресурса

Есть консольная программа с бинарными ресурсами (Windows)Нашел, как загружать, записывать в файл и так далее -

104
Обозначение указателей в C++

Обозначение указателей в C++

ЗдравствуйтеЕсть ли какие-нибудь существенные различия между такими определениями указателя:

168