代码如下:(思路全在代码注释里了)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXSIZE 30//每个单词的最大长度为30
typedef struct node{
char word[MAXSIZE];//单词
int fre;//出现频次
struct node *nextW;//指向下一个节点
}NODE,*wordNode;//词节点
//分词表
typedef struct {
//按照26个字母表进行分类的邻接表
wordNode first;//指向的第一个词
}WordList;
void getWord(FILE*fp,char *string){//从文件中选出单词
char ch=fgetc(fp);
int i=0;
while(!feof(fp)&&(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')){//写入
string[i++]=ch;
ch=fgetc(fp);
}
string[i]='\0';
}
int main(void){
FILE *fp;
char temp[MAXSIZE];
int i=0;
char *filename="test.txt";
wordNode p;//指针
if((fp=fopen(filename,"r"))==NULL){
printf("failed to open the file!\n");
return 0;
}
WordList wlist[26];//26英文字母
for(int i=0;i<26;i++){