Как найти словосочетание в строке и занести его в другую строчную переменную?

193
26 июня 2018, 22:50

В переменную s из файла считываются строки. Как из этих строк извлечь и записать в другую строчную переменную ,например, все словосочетания, которые содержат: "user: (какое-то имя),". Имя состоит из одного слова, словосочетание ограничивается запятой , .

Код:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string s; 
ifstream file("file1"); 
int count = 1;
while (getline(file, s)) { 
    cout << "String " << "#" << count << ": " << s << endl; 
    count++;
}
file.close(); 
system("pause");
return 0;
}
Answer 1

Немного изменений в цикле, и получим решение:

while (getline(file, s, ',')) {
    size_t pos = s.find("user");
    if (pos == string::npos)
        continue;
    s.erase(s.begin(), s.begin() + pos);
    cout << "String " << "#" << count << ": " << s << endl;
    count++;
}

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

READ ALSO
Подходящий конструктор копирования

Подходящий конструктор копирования

Есть класс Son который наследует класс CARD, который в свою очередь наследует класс MARSHКогда я пишу к примеру cout << (Son)So; Пишет что нет подходящего...

220
Преобразование String в Integer C++

Преобразование String в Integer C++

Читал другие темы с этим вопросом, но у меня не получается перевестиПрограмма работает, но вот выводит неправильно

350
Перебор всех возможных сумм массива с++

Перебор всех возможных сумм массива с++

Помогите с алгоритмом для программы

208
Некорректное чтение данных из файла

Некорректное чтение данных из файла

Ввожу и считываю данные этим кодом

222