Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C++, парсинг строки

Иван Быков Ученик (30), закрыт 8 лет назад
Приветствую.
В С++ нуб полный. Подскажите, имеется строчка, например, char mes[256];
Ее содержание:
12188888061120151848kdlpweiw
ГДЕ:
12188888 - номер клиента
06112015 - непосредственно дата
1848 - время
kdlpweiw - сообщение клиента.
Как все эти данные "распарсить" по другим массивам?
Лучший ответ
Николай Веселуха Высший разум (383884) 9 лет назад
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class client {
public:
client(string query) : qs(query) { parse(); }
friend ostream& operator<<(ostream& out, const client& cl);
private:
void parse();
string qs;
string id;
string date;
string time;
string message;
};
int main() {
string query_ivan = "12188888061120151848kdlpweiw";
string query_maxim = "13183583071120151634yiiihaaa";
vector<client> clients;
client ivan(query_ivan);
clients.push_back(ivan);
client maxim(query_maxim);
clients.push_back(maxim);
for (auto &cl : clients) cout << cl;
cout << endl;
cin.get();
}
void client::parse() {
id = qs.substr(0, 8);
date = qs.substr(8, 2) + "." + qs.substr(10, 2) + "." + qs.substr(12, 4);
time = qs.substr(16, 2) + ":" + qs.substr(18, 2);
message = qs.substr(20);
}
ostream& operator<<(ostream& out, const client& cl) {
out << "\n------------------\n"
<< "Id: " << cl.id << "\nDate: " << cl.date
<< "\nTime: " << cl.time << "\nMessage: " << cl.message;
return out;
}
Остальные ответы
Похожие вопросы