为什么这串代码调试不了


#include <stdio.h>
#define MAXN 20
 
void strmcpy( char *t, int m, char *s )
{
    int i,j=0;
    gets(t);
    for(i=m-1;t[i]!='\0';i++)
    {
        s[j++]=t[i]; //从第m位起,逐个赋给s
    }
    s[j++]='\0';  //结尾加上结束标志
}
 
 
int main()
{
    char t[MAXN], s[MAXN];
    int m;
    scanf("%d\n", &m); //调试的时候一直可在这里,输入了一个数字后按回车也不进入下一行
    strmcpy( t, m, s );
    printf("%s\n", s);
    return 0;
}

img

第21行修改为:scanf("%d", &m); //scanf("%d\n", &m);

scanf("%d",&m)
删去\n试试

img


没问题啊,输入的m不要大于后面输入的字符串长度