统计 各个单词的出现次数 无法输出,帮忙看看,谢!
统计各个单词出现个数 但没有输出 ????
程序代码:#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct node node;
struct node
{
char* p_word;
int count;
node* left;
node* right;
};
int main()
{
void print_tree(node*);
void test(node*,char*);
node* root=NULL;
char* buf=malloc(sizeof(char)*20);
char* text=malloc(sizeof(char)*300);
setbuf(stdin,NULL);
scanf("%s",buf);
while(*buf!='0') //输入0开头的行代表输入结束
{
strcat(text,buf);
setbuf(stdin,NULL);
scanf("%s",buf);
}
char* p=text;
p=strtok(p," ,.?!\n");
while(p!=NULL)
{
test(root,p);
p=strtok(NULL,",.?!\n ");
}
node* p_node=root;
print_tree(p_node);
}
void print_tree(node* p)
{
if(p==NULL)
;
else
{
print_tree(p->left);
printf("%s:%d\n",p->p_word,p->count);
print_tree(p->right);
}
}
void test(node* root,char* p)
{
if(root==NULL)
{
root=malloc(sizeof(node));
root->p_word=p;
root->count=1;
root->left=root->right=NULL;
}
else if(strcmp(p,root->p_word)==0)
root->count++;
else if(strcmp(p,root->p_word)<0)
test(root->left,p);
else if(strcmp(p,root->p_word)>0)
test(root->right,p);
}


