#include <stdio.h>
#include <stdlib.h> // malloc
char* substr( const char* str, size_t index, size_t length )
{
int i;
char* temp = (char*)malloc( length + 1 );
const char* s = str + index;
for( i = 0; i < length && s[ i ]; ++i )
temp[ i ] = s[ i ];
for( ; i < length; ++i ) temp[ i ] = ' ';
temp[ length ] = 0;
return temp;
}
int main()
{
char* str;
puts( str = substr( "hello world", 6, 3 ) );
free( str );
puts( str = substr( "hello world", 6, 10 ) );
free( str );
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4gLy8gbWFsbG9jCgpjaGFyKiBzdWJzdHIoIGNvbnN0IGNoYXIqIHN0ciwgc2l6ZV90IGluZGV4LCBzaXplX3QgbGVuZ3RoICkKewogICAgaW50IGk7CiAgICBjaGFyKiB0ZW1wID0gKGNoYXIqKW1hbGxvYyggbGVuZ3RoICsgMSApOwogICAgY29uc3QgY2hhciogcyA9IHN0ciArIGluZGV4OwogICAgZm9yKCBpID0gMDsgaSA8IGxlbmd0aCAmJiBzWyBpIF07ICsraSApCiAgICAgICAgdGVtcFsgaSBdID0gc1sgaSBdOwogICAgZm9yKCA7IGkgPCBsZW5ndGg7ICsraSApIHRlbXBbIGkgXSA9ICcgJzsKICAgIHRlbXBbIGxlbmd0aCBdID0gMDsKICAgIHJldHVybiAgdGVtcDsKfQoKaW50IG1haW4oKQp7CgljaGFyKiBzdHI7CglwdXRzKCBzdHIgPSBzdWJzdHIoICJoZWxsbyB3b3JsZCIsIDYsIDMgKSApOwoJZnJlZSggc3RyICk7CgoJcHV0cyggc3RyID0gc3Vic3RyKCAiaGVsbG8gd29ybGQiLCA2LCAxMCApICk7CglmcmVlKCBzdHIgKTsKCglyZXR1cm4gMDsKfQ==