#include <stdio.h>

#include <stdlib.h>

#include <memory.h>

#include <string.h>

typedef size_t uint;

typedef unsigned char uchar;

char* Slicing(char* str ,size_t jmp, size_t starts, size_t len, uchar remain)

{

char buf[10000] = { 0, };

int bufIndex = 0;

int i = -1, j = 0;

while (str[++i] != 0);

const uint length = (uint)i;

i = 0;

for (; starts < length; starts += jmp)

{

if (length - starts>= len)

{

memcpy(buf + bufIndex, str + starts, len);

bufIndex += len;

starts += len;

}

else if (remain)

{


memcpy(buf + bufIndex, str + starts, length - starts);

bufIndex += length - starts;

starts += length - starts;

char *ret = (char*)malloc(sizeof(char)*(bufIndex+1));

memcpy(ret, buf, bufIndex+1);

ret[strlen(buf)] = 0;

return ret;

}

else if (!remain)

{

char *ret = (char*)malloc(sizeof(char)*(bufIndex + 1));

memcpy(ret, buf, bufIndex);

ret[strlen(buf)] = 0;

return ret;

}

}


char *ret = (char*)malloc(sizeof(char)*bufIndex+1);

memcpy(ret, buf, bufIndex+1);

return ret;

}


int main()

{

char *i = Slicing("#Eg89", 1, 1, 2, 0);

printf("%s", i);

}