1、gets、puts 函数可以一整行的字母输入输出%s,字符数组,无论中间有没有空格,按完enter就可以了;
2、scanf比较灵活,如果是单个字符%c就可以,一个字符的输入,但是在循环输入中,有空格或者换行符也会被当做字符输入的。所以中间不能有空格出现;
3、对于scanf函数来说,如果是字符数组的输入%s的出现,则如果中间出现空格或者换行符都会被当做结束符,这与gets是不同的,gets是遇到换行符就结束了。用gets输入的时间比用scanf要快。
4、输入一段连续用都用逗号或者空格隔开的数字的方法是,前提是建立了一个比较大的数组:
while(1)
{
scanf("%d",&n[i++]);
if(getchar()=='\n')
{
break;
}
}
数组大小未知的情况则可以这么做:
只能用链表才能行。
头插法:
typedef struct note
{
int value;
struct note* next;
}link,*plink;
int main()
{
int i=0,j=0;
plink head=(plink)malloc(sizeof(link));
head->value=0;
head->next=NULL;
while(1)
{
plinknewLink=(plink)malloc(sizeof(link));
scanf("%d",&(newLink->value));
newLink->next=head->next;
head->next=newLink;
if(getchar()=='\n')
{
break;
}
i++;
}
while(head->next!=NULL)
{
head=head->next;
printf("%d ",head->value);
}
return 0;
}
清空链表需要两个指针指向头指针:
p=head->next;
q=head->next;
while(q!=NULL)
{
q=q->next;
free(p);
p=q;
}