C语言字符串输入问题

#include <stdio.h>
int main()
{
int n,m;
scanf("%d",&n);
char a[80];
gets(a);
scanf("%d",&m);
char *p;
p=&a[m-1];
puts(p);

}

题目:有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。
上面的代码为什么用gets(a)输入是错误的。要用scanf("%s",a)

#include <stdio.h>
int main()
{
int n,m;
char c,a[80];
scanf("%d%c",&n,&c);
gets(a);
scanf("%d",&m);
char *p;
p=&a[m-1];
puts(p);
return 0;
}追问

为什么要加%c?

温馨提示:答案为网友推荐,仅供参考
相似回答