Как спарсить строку?

180
03 сентября 2019, 01:50

Есть строка вида: "40 1234567 12"

Нужно спарсить вторую по счету строчку (то есть: 1234567)

Как это сделать?

Answer 1

Disclaimer: все защиты от дурака отключены, считаем, что формат именно такой, как показано.

Например: :)

string s =  "40 1234567 12", get;
istringstream in(s);
s >> get;
s >> get;

Или:

s = s.substr(s.find(' ')+1);
s = s.substr(0,s.find(' '));
Answer 2

Если надо не только второе слово вывести то можно сделать так:

#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <iterator>
using namespace std;
int main() {
    string s;
    getline(cin, s); // вводим строку
    istringstream iss(s);
    // записываем все слова в вектор
    vector <string> a { istream_iterator<string>{iss}, 
                        istream_iterator<string>{} };

    cout << a[1] << endl; // выводим второе слово
    return 0;
}
READ ALSO
Передать сигнал и слот QT как параметр

Передать сигнал и слот QT как параметр

Есть библиотека которая общается с устройством либо через usb, либо через ethernet, либо еще через что тоИ хотелось бы что бы передать в конструктор...

143
Задать время для перехода на следующий Activity

Задать время для перехода на следующий Activity

Подскажите, как задать время для перехода на следующий ActivityОбъясню для чего

153
Как запустить spring сервер из тестов?

Как запустить spring сервер из тестов?

Есть в тесте такой кусок кодаРаботает только, если само приложение было запущено ранее

163