【说明】
以字符流形式读入一个文件,从文件中检索出6种C语言的关键字,并统计、输出每种关键字在文件中出现的次数。本程序中规定:单词是一个以空格或’\t’、’\n’结束的字符串。其中6种关键字在程序中已经给出。
【程序】
#include <stdio.h>
#include <stdlib.h>
FILE *cp;
char fname[20], buf[100];
int NUM;
struct key
char word[10];
int count;
keyword[]= "if", 0, "char", 0, "int", 0,
"else", 0, "while", 0, "return", 0;
char *getword (FILE *fp)
int i=0;
char c;
while((c=getc(fp))!= EOF && (1) );
if(c==EOF)
return (NULL);
else
buf[i++]=c;
while((c=fgetc(fp))!=EOF && c!="&& c!=’\t’ && c!=’\n’ )
buf[i++]=c;
buf[i]=’\0’;
return(buf);
void lookup(char *p)
int i;
char *q, *s;
for(i=0; i<NUM; i++)
q= (2) ;
s=p;
while(*s && (*s==*q))
(3) )
if( (4) )
keyword[i].count++;
break;
return;
void main()
int i;
char *word;
printf("lnput file name:");
scanf("%s", fname);
if((cp=fopen(fname, "r"))==NULL)
printf("File open error: %s\n", fname);
exit(0);
NUM=sizeof(keyword)/sizeof(struct key);
while( (5) )
lookup(word);
fclose(cp);
for(i=0;i<NUM;i++)
printf("keyword:%-20s count=%d\n",keyword[i].word,keyword[i].count);