#include <stdio.h>
#include <string.h>
char *GetSubstring(const char source[], size_t start, size_t count, char result[])
{
if (start > strlen(source) - count)
{
*result = 0;
}
else
{
if (start + count > strlen(source))
count = strlen(source) - start;
while (start > 0)
{
source++;
start--;
}
*(result + count) = 0;
while (count > 0)
{
count--;
*(result + count) = *(source + count);
}
}
return result; //no brackets needed
}
int main(void)
{
char source[100];
char result[100];
size_t start = 0;
size_t count = 0;
printf("enter source\n");
fgets(source, 100, stdin);
source[strcspn(source, "\n")] = '\0';
printf("enter start and count\n");
scanf("%zu %zu", &start, &count); //%zu specifiers for size_t
printf("%s %zu %zu\n", source, start, count);
printf("%s %zu %zu %s\n", source, start, count, GetSubstring(source, start, count, result));
return 0;
}