#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int str_cut(char *str, int begin, int len)
{
if (len < 0) len = l - begin;
if (begin + len > l) len = l - begin;
memmove(str
+ begin
, str
+ begin
+ len
, l
- len
+ 1);
return len;
}
int main(void)
{
char str[] = "The quick brown fox";
str_cut(str, 10, 6); // "The quick [brown ]fox"
puts(str
); // "The quick fox"
str_cut(str, 3, 6); // "The [quick ]fox"
str_cut(str, 3, -1); // "The[ fox]"
return 0;
}
CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmludCBzdHJfY3V0KGNoYXIgKnN0ciwgaW50IGJlZ2luLCBpbnQgbGVuKQp7CiAgICBpbnQgbCA9IHN0cmxlbihzdHIpOwoKICAgIGlmIChsZW4gPCAwKSBsZW4gPSBsIC0gYmVnaW47CiAgICBpZiAoYmVnaW4gKyBsZW4gPiBsKSBsZW4gPSBsIC0gYmVnaW47CiAgICBtZW1tb3ZlKHN0ciArIGJlZ2luLCBzdHIgKyBiZWdpbiArIGxlbiwgbCAtIGxlbiArIDEpOwoKICAgIHJldHVybiBsZW47Cn0KCmludCBtYWluKHZvaWQpCnsKICAgIGNoYXIgc3RyW10gPSAiVGhlIHF1aWNrIGJyb3duIGZveCI7CiAgICAKICAgIHB1dHMoc3RyKTsKICAgIAogICAgc3RyX2N1dChzdHIsIDEwLCA2KTsgICAgLy8gIlRoZSBxdWljayBbYnJvd24gXWZveCIKICAgIHB1dHMoc3RyKTsgICAgICAgICAgICAgIC8vICJUaGUgcXVpY2sgZm94IgogICAgCiAgICBzdHJfY3V0KHN0ciwgMywgNik7ICAgICAvLyAiVGhlIFtxdWljayBdZm94IgogICAgcHV0cyhzdHIpOyAgICAgICAgICAgICAgLy8gIlRoZSBmb3giCiAgICAKICAgIHN0cl9jdXQoc3RyLCAzLCAtMSk7ICAgIC8vICJUaGVbIGZveF0iCiAgICBwdXRzKHN0cik7ICAgICAgICAgICAgICAvLyAiVGhlIgogICAgCiAgICByZXR1cm4gMDsKfQo=