【说明】 以字符流形式读入一个文件,从文件中检索出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); }