#include<stdio.h>void main(){ void abc(); void efg(); int i; printf("输入对应号码:\n"); scanf("%d",&i); if(i==1) abc(); else if(i==2) efg();}void abc(){ char a[10]; printf("输入:\n"); gets(a); puts(a);}void efg(){ char a[10]; printf("请输入:\n"); scanf("%s",a); puts(a);}像上面的程序,为什么abc()中用gets(a)运行时程序就错了,而efg()中用scanf就没问题,gets和scanf不是只差别在可不可以包含空格字符的吗?