#include <string>
#include <iostream>
#include <algorithm>
std::string cutAtNComma(const std::string &s, int n) {
auto iter = std::find_if(s.cbegin(), s.cend(),
[n](char c) mutable {
if (c == ',') {
if (--n == 0) return true;
}
return false;
}
);
if (iter != s.cend()) return std::string(s.cbegin(), iter);
return s;
}
int main() {
std::string s1 = "item1, item2, item3, item4, item5";
std::string sub = cutAtNComma(s1, 4);
std::cout << "String is: " << sub;
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKc3RkOjpzdHJpbmcgY3V0QXROQ29tbWEoY29uc3Qgc3RkOjpzdHJpbmcgJnMsIGludCBuKSB7CglhdXRvIGl0ZXIgPSBzdGQ6OmZpbmRfaWYocy5jYmVnaW4oKSwgcy5jZW5kKCksCgkJW25dKGNoYXIgYykgbXV0YWJsZSB7CgkJCWlmIChjID09ICcsJykgewoJCQkJaWYgKC0tbiA9PSAwKSByZXR1cm4gdHJ1ZTsKCQkJfQoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJKTsKCWlmIChpdGVyICE9IHMuY2VuZCgpKSByZXR1cm4gc3RkOjpzdHJpbmcocy5jYmVnaW4oKSwgaXRlcik7CglyZXR1cm4gczsKfQoKaW50IG1haW4oKSB7CglzdGQ6OnN0cmluZyBzMSA9ICJpdGVtMSwgaXRlbTIsIGl0ZW0zLCBpdGVtNCwgaXRlbTUiOwoJc3RkOjpzdHJpbmcgc3ViID0gY3V0QXROQ29tbWEoczEsIDQpOwoJc3RkOjpjb3V0IDw8ICJTdHJpbmcgaXM6ICIgPDwgc3ViOwoJcmV0dXJuIDA7Cn0=