#include <iostream>
#include <string>
#include <sstream>
#include <stdexcept>
#include <vector>
std::vector<std::string> &split(const std::string &s, char delim, std::vector<std::string> &elems)
{
std::stringstream ss(s);
std::string item;
while (std::getline(ss, item, delim))
{
elems.push_back(item);
}
return elems;
}
std::vector<std::string> split(const std::string &s, char delim)
{
std::vector<std::string> elems;
split(s, delim, elems);
return elems;
}
int main()
{
try
{
//Beispiel...
std::string receivedPacket = "LOGIN|1001|12345678|4.1";
auto packetSplitted = split(receivedPacket, '|');
auto userId = packetSplitted.at(1);
std::cout << "UserID: " << userId;
}
catch(const std::out_of_range &rangeException)
{
std::cout << "Oh Oh... Out of range :(" << std::endl;
}
catch(const std::exception &unkException)
{
std::cout << "Oh Oh... Unknown Exception :(" << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHN0ZGV4Y2VwdD4KI2luY2x1ZGUgPHZlY3Rvcj4KCnN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiAmc3BsaXQoY29uc3Qgc3RkOjpzdHJpbmcgJnMsIGNoYXIgZGVsaW0sIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiAmZWxlbXMpIAp7CiAgICBzdGQ6OnN0cmluZ3N0cmVhbSBzcyhzKTsKICAgIHN0ZDo6c3RyaW5nIGl0ZW07CiAgICB3aGlsZSAoc3RkOjpnZXRsaW5lKHNzLCBpdGVtLCBkZWxpbSkpIAogICAgewogICAgICAgIGVsZW1zLnB1c2hfYmFjayhpdGVtKTsKICAgIH0KICAgIHJldHVybiBlbGVtczsKfQoKc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHNwbGl0KGNvbnN0IHN0ZDo6c3RyaW5nICZzLCBjaGFyIGRlbGltKSAKewogICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IGVsZW1zOwogICAgc3BsaXQocywgZGVsaW0sIGVsZW1zKTsKICAgIHJldHVybiBlbGVtczsKfQoKaW50IG1haW4oKSAKewoJdHJ5Cgl7CgkJLy9CZWlzcGllbC4uLgoJCXN0ZDo6c3RyaW5nIHJlY2VpdmVkUGFja2V0ID0gIkxPR0lOfDEwMDF8MTIzNDU2Nzh8NC4xIjsKCQoJCWF1dG8gcGFja2V0U3BsaXR0ZWQgPSBzcGxpdChyZWNlaXZlZFBhY2tldCwgJ3wnKTsKCQoJCWF1dG8gdXNlcklkID0gcGFja2V0U3BsaXR0ZWQuYXQoMSk7CgkJc3RkOjpjb3V0IDw8ICJVc2VySUQ6ICIgPDwgdXNlcklkOwoJfQoJY2F0Y2goY29uc3Qgc3RkOjpvdXRfb2ZfcmFuZ2UgJnJhbmdlRXhjZXB0aW9uKQoJewoJCXN0ZDo6Y291dCA8PCAiT2ggT2guLi4gT3V0IG9mIHJhbmdlIDooIiA8PCBzdGQ6OmVuZGw7CQoJfQoJY2F0Y2goY29uc3Qgc3RkOjpleGNlcHRpb24gJnVua0V4Y2VwdGlvbikKCXsKCQlzdGQ6OmNvdXQgPDwgIk9oIE9oLi4uIFVua25vd24gRXhjZXB0aW9uIDooIiA8PCBzdGQ6OmVuZGw7Cgl9CgkKCXJldHVybiAwOwp9