70,027
社区成员




int getword(char *word ,int lim)
{
int c;
char *w=word;
//忽略空格
while(isspace(c=getch()))
;
//如果接受的字符不是结束标志
if(c!=EOF)
*w++=c;
//如果首字符不是字母设置结束标志返回
if(!isalpha(c)){
*w='\0';
return c;
}
for(;lim>0;*w++)
//如果接受的是字母或数字继续,如果不是取回存在缓冲区里的字符直到缓冲区为零
if(!isalnum(*w=getch())){
//已经读入了一个非字母或数字要把它放入缓冲区
ungetch(*w);
break;
}
*w='\0';
return word[0];
}
//如果缓冲区有字符取缓冲区,如果没有接受键盘
int getch(void)
{
return (bufp>0?buf[--bufp]: getchar());
}
//缓冲区里面加入一个字符
void ungetch (int c)
{
if(bufp>=BUFSIZE)
printf("ungetch:too many characters\n");
else
buf[bufp++] =c;
}