本题要求编写函数,将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

函数接口定义:
void strmcpy( char *t, int m, char *s );
函数strmcpy将输入字符串char *t中从第m个字符开始的全部字符复制到字符串char *s中。若m超过输入字符串的长度,则结果字符串应为空串。

裁判测试程序样例:
#include <stdio.h>
#define MAXN 20

void strmcpy( char *t, int m, char s );
void ReadString( char s[] ); /
由裁判实现,略去不表 */

int main()
{
char t[MAXN], s[MAXN];
int m;

scanf("%d\n", &m);
ReadString(t);
strmcpy( t, m, s );
printf("%s\n", s);

return 0;

}

/* 你的代码将被嵌在这里 */
输入样例:
7
happy new year
输出样例:
new year

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

如下:

#include <stdio.h>
#define MAXN 20

void strmcpy( char *t, int m, char *s );
void ReadString( char s[] ); /* 由裁判实现,略去不表 */

int main()
{
    char t[MAXN], s[MAXN];
    int m;

    scanf("%d\n", &m);
    ReadString(t);
    strmcpy( t, m, s );
    printf("%s\n", s);

    return 0;
}

void strmcpy( char *t, int m, char *s )
{
    int i=m-1;
    int j = 0;
    while(t[i] != '\0')
    {
        s[j++] = t[i];
        i++;
    }
    if(j >= MAXN)
        s[0] = 0; //空串
    else
        s[j] = 0;
}