#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;
}