#include <malloc.h>
#include <string.h>
#include <iostream>
using namespace std;
typedef struct node{
char data[20];
int count;
struct node *next;
}LNode,*LinkList;
void init(LinkList *L);//初始化链表
void distinguish_count();//截取单词并输入进2单链表,统计了重复个数,并输出链表
void input(LinkList L,char *a);//于dis..函数中帮助实现向链表输入单词,统计重复个数
void print_1(LinkList L);//打印出每个节点的单词与词频
void init(LinkList *L){
(*L)=(LinkList)malloc(sizeof(LNode));
(*L)->next=NULL;
}
void distinguish_count(LinkList L){
FILE *fp;
char arr[20],c;
init(&L);
fp=fopen("Infile.txt","r");
if(fp==NULL)
printf("fall to open!\n");
else{
while(!feof(fp)){//循环到文件结束
printf("test ");
int i=0;
arr[0]={'\0'};
//截取一个单词(大写)
while((c=fgetc(fp)!=EOF)&&c!=' '&&c!=','&&c!='.'&&c!=';'){
//全部大写化
if(c>='a'&&c<='z')
c+=32;
arr[i]=c;
++i;
}
arr[i]={'\0'};
if(arr[0]!='\0')
input(L,arr);
}}
print_1(L);
fclose(fp);
}
//查词频 头插法
void input(LinkList L,char *a){
LinkList P;
LinkList Q;
Q=L->next ;
int flag;
//查重
for(Q=L;Q->next!=NULL;Q=Q->next){
if(stricmp(a,Q->data)==0 ){
Q->count++;
flag=1;
break;
}
}
//头插法
if(flag==0){
P=(LinkList)malloc(sizeof(LNode));
strcpy(P->data,a);
P->count=1;
P->next =L->next ;
L->next =P;
}
}
//打印单词及其词频
void print_1(LinkList L){
LinkList p;
p=L->next;
while(p!=NULL){
cout<<"word:"<<p->data<<" "<<"count:"<<p->count <<endl;
p=p->next;
}
int main(){
LinkList L;
distinguish_count(L);
}
为什么该程序没有报错,但是就是运行不了。球球大佬,救救孩子,孩子实训熬不过去了😭😭😭