#include <iostream>
using namespace std;
string GetElDot(const string& Msg, int Where, int* WhereNext) {
string outputStr;
int WhereDot = Msg.find('.', Where);
int WhereBackSlash = Msg.find('/', Where);
// there is no . but there is / e.g. CQ330/WQ
// OR there is . and there is / and dot is after / e.g. CQ330/WQ320.
if ((WhereDot < 0 && WhereBackSlash >= 0) || (WhereDot >= 0 && WhereBackSlash >= 0 && WhereDot > WhereBackSlash)) {
outputStr.assign(Msg, Where, WhereBackSlash - Where);
(*WhereNext) = WhereBackSlash + 1;
return outputStr;
}
// there is no . and there is no / e.g. CQ330/WQ (Where=6)
if (WhereDot < 0 && WhereBackSlash < 0) {
outputStr.assign(Msg, Where, Msg.size() - Where);
(*WhereNext) = Msg.size(); // end of string (there is no next element)
return outputStr;
}
// there is . and there is / and dot is before / e.g. CQ330.330/
// or there is a dot but there is no / e.g. CQ234.345
if ((WhereDot >= 0 && WhereBackSlash >= 0 && WhereDot < WhereBackSlash) || (WhereDot >= 0 && WhereBackSlash < 0)) {
outputStr.assign(Msg, Where, WhereDot - Where);
(*WhereNext) = WhereDot + 1;
return outputStr;
}
// error format
(*WhereNext) = Msg.size(); // end of string (there is no next element)
return outputStr;
}
int main() {
// your code goes here
std::string start = "PETAK.LOLEK";
int whereNext = 0;
std::string out = GetElDot(start, 0, &whereNext);
cout << start << "=" << out << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RyaW5nIEdldEVsRG90KGNvbnN0IHN0cmluZyYgTXNnLCBpbnQgV2hlcmUsIGludCogV2hlcmVOZXh0KSB7CiAgICBzdHJpbmcgb3V0cHV0U3RyOwoKICAgIGludCBXaGVyZURvdCA9IE1zZy5maW5kKCcuJywgV2hlcmUpOwogICAgaW50IFdoZXJlQmFja1NsYXNoID0gTXNnLmZpbmQoJy8nLCBXaGVyZSk7CgogICAgLy8gdGhlcmUgaXMgbm8gLiBidXQgdGhlcmUgaXMgLyBlLmcuIENRMzMwL1dRCiAgICAvLyBPUiB0aGVyZSBpcyAuIGFuZCB0aGVyZSBpcyAvIGFuZCBkb3QgaXMgYWZ0ZXIgLyBlLmcuIENRMzMwL1dRMzIwLgogICAgaWYgKChXaGVyZURvdCA8IDAgJiYgV2hlcmVCYWNrU2xhc2ggPj0gMCkgfHwgKFdoZXJlRG90ID49IDAgJiYgV2hlcmVCYWNrU2xhc2ggPj0gMCAmJiBXaGVyZURvdCA+IFdoZXJlQmFja1NsYXNoKSkgewogICAgICAgIG91dHB1dFN0ci5hc3NpZ24oTXNnLCBXaGVyZSwgV2hlcmVCYWNrU2xhc2ggLSBXaGVyZSk7CiAgICAgICAgKCpXaGVyZU5leHQpID0gV2hlcmVCYWNrU2xhc2ggKyAxOwogICAgICAgIHJldHVybiBvdXRwdXRTdHI7CiAgICB9CgogICAgLy8gdGhlcmUgaXMgbm8gLiBhbmQgdGhlcmUgaXMgbm8gLyBlLmcuIENRMzMwL1dRIChXaGVyZT02KQogICAgaWYgKFdoZXJlRG90IDwgMCAmJiBXaGVyZUJhY2tTbGFzaCA8IDApIHsKICAgICAgICBvdXRwdXRTdHIuYXNzaWduKE1zZywgV2hlcmUsIE1zZy5zaXplKCkgLSBXaGVyZSk7CiAgICAgICAgKCpXaGVyZU5leHQpID0gTXNnLnNpemUoKTsgLy8gZW5kIG9mIHN0cmluZyAodGhlcmUgaXMgbm8gbmV4dCBlbGVtZW50KQogICAgICAgIHJldHVybiBvdXRwdXRTdHI7CiAgICB9CgogICAgLy8gdGhlcmUgaXMgLiBhbmQgdGhlcmUgaXMgLyBhbmQgZG90IGlzIGJlZm9yZSAvIGUuZy4gQ1EzMzAuMzMwLwogICAgLy8gb3IgdGhlcmUgaXMgYSBkb3QgYnV0IHRoZXJlIGlzIG5vIC8gZS5nLiAgQ1EyMzQuMzQ1CiAgICBpZiAoKFdoZXJlRG90ID49IDAgJiYgV2hlcmVCYWNrU2xhc2ggPj0gMCAmJiBXaGVyZURvdCA8IFdoZXJlQmFja1NsYXNoKSB8fCAoV2hlcmVEb3QgPj0gMCAmJiBXaGVyZUJhY2tTbGFzaCA8IDApKSB7CiAgICAgICAgb3V0cHV0U3RyLmFzc2lnbihNc2csIFdoZXJlLCBXaGVyZURvdCAtIFdoZXJlKTsKICAgICAgICAoKldoZXJlTmV4dCkgPSBXaGVyZURvdCArIDE7CiAgICAgICAgcmV0dXJuIG91dHB1dFN0cjsKICAgIH0KCiAgICAvLyBlcnJvciBmb3JtYXQKICAgICgqV2hlcmVOZXh0KSA9IE1zZy5zaXplKCk7IC8vIGVuZCBvZiBzdHJpbmcgKHRoZXJlIGlzIG5vIG5leHQgZWxlbWVudCkKCiAgICByZXR1cm4gb3V0cHV0U3RyOwp9CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXN0ZDo6c3RyaW5nIHN0YXJ0ID0gIlBFVEFLLkxPTEVLIjsKCWludCB3aGVyZU5leHQgPSAwOwoJCglzdGQ6OnN0cmluZyBvdXQgPSBHZXRFbERvdChzdGFydCwgMCwgJndoZXJlTmV4dCk7CgkKCWNvdXQgPDwgc3RhcnQgPDwgIj0iIDw8IG91dCA8PCBlbmRsOwoJCglyZXR1cm4gMDsKfQ==