PTA上的难题,有人能教我吗

应用字符数组存储从键盘输入一行字符(100个以内),用户输入整数i和n的值,编写算法输出该字符串中从第i个字符开始的n个字符。

提示:若i<1则认为i=1,若字符串剩余的字符不够n个则输出剩余的全部字符。

输入格式:
第一行输入一行字符(字符个数小于100)。

第二行输入2个整数,以空格间隔,第1个数为i的值,第2个数为n的值。

输出格式:
输出该字符串中从第i个字符开始的n个字符。


#include<stdio.h>
#include<string.h>
int main()
{
    char buff[100] = { "\0" };
    int i = 0, n = 0;
    scanf("%s%d%d", buff, &i, &n);
    if (i < 1) i = 1;
    n += i;
    for (;i < n && i <= strlen(buff); i++)
    {
        printf("%c",buff[i-1]);
    }
    return 0;
}
#include <stdio.h>
#include <string.h>
int main(void)
{
        int i,n,index;
        char str[102];
        int len;
        fgets(str,102,stdin);
        len=strlen(str);
        str[--len]='\0';
        scanf("%d %d",&i,&n);
        i=i<1?1:i;
        for(index=i-1;(index<i+n-1)&&(str[index]!='\0');index++)
                putchar(str[index]);
        return 0;
}