#include <iostream>
#include <string.h>
int strsplit(const char *str, char splitter, char *vec[], int count) {
if (!str || !str[0] || !vec || !count)
return 0;
int i = 0;
bool quitting = false;
const char *p = str;
while (p != 0 && i < count && !quitting) {
int count = 0;
const char *tmp = p;
while (*p != splitter) {
if (*p == 0)
quitting = true;
p++;
count++;
}
vec[i] = new char[++count];
memcpy(vec[i], tmp, count);
vec[i][count] = 0;
i++;
p++;
}
return i;
}
int main() {
const char* str = "Задрали строки, оканчивающиеся на ноль";
char *strvec[100];
if (strsplit(str, ' ', strvec, 100) > 1)
std::cout << strvec[1] << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nLmg+CgppbnQgc3Ryc3BsaXQoY29uc3QgY2hhciAqc3RyLCBjaGFyIHNwbGl0dGVyLCBjaGFyICp2ZWNbXSwgaW50IGNvdW50KSB7CglpZiAoIXN0ciB8fCAhc3RyWzBdIHx8ICF2ZWMgfHwgIWNvdW50KQoJCXJldHVybiAwOwoJCglpbnQgaSA9IDA7Cglib29sIHF1aXR0aW5nID0gZmFsc2U7Cgljb25zdCBjaGFyICpwID0gc3RyOwoJd2hpbGUgKHAgIT0gMCAmJiBpIDwgY291bnQgJiYgIXF1aXR0aW5nKSB7CgkJaW50IGNvdW50ID0gMDsKCQljb25zdCBjaGFyICp0bXAgPSBwOwoJCXdoaWxlICgqcCAhPSBzcGxpdHRlcikgewoJCQlpZiAoKnAgPT0gMCkKCQkJCXF1aXR0aW5nID0gdHJ1ZTsKCQkJcCsrOwoJCQljb3VudCsrOwoJCX0KCQkKCQl2ZWNbaV0gPSBuZXcgY2hhclsrK2NvdW50XTsKCQltZW1jcHkodmVjW2ldLCB0bXAsIGNvdW50KTsKCQl2ZWNbaV1bY291bnRdID0gMDsKCQkKCQlpKys7CgkJcCsrOwoJfQoJCglyZXR1cm4gaTsKfQoKaW50IG1haW4oKSB7Cgljb25zdCBjaGFyKiBzdHIgPSAi0JfQsNC00YDQsNC70Lgg0YHRgtGA0L7QutC4LCDQvtC60LDQvdGH0LjQstCw0Y7RidC40LXRgdGPINC90LAg0L3QvtC70YwiOwoJY2hhciAqc3RydmVjWzEwMF07CglpZiAoc3Ryc3BsaXQoc3RyLCAnICcsIHN0cnZlYywgMTAwKSA+IDEpCgkJc3RkOjpjb3V0IDw8IHN0cnZlY1sxXSA8PCBzdGQ6OmVuZGw7CglyZXR1cm4gMDsKfQ==