字符分割并计数
从文件中读取一行字符,对字符按逗号分割成单词,并计算每个单词出现次数
#include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct word{ char str[32]; int cot; }word; void main(){ FILE *fp; word w[16]; int i,j,k,len,fg,n=0; char str[64]; for(i=0;i<16;i++) w[i].cot=0; if((fp=fopen("d:\\xue.txt","r"))==NULL){ printf("can not find the file!\n"); return; } fgets(str,64,fp); //读文件 len=strlen(str); for(i=0;i<len;i++){ //字符按逗号分割成单词 fg=0; for(k=0;i<len&&str[i]!=',';i++,k++){ w[n].str[k]=str[i]; fg=1; } if(fg){ w[n].str[k]='\0'; w[n].cot++; n++; } } for(i=0;i<n;i++){ //计算每个单词出现次数 for(k=i+1;k<n;k++){ if(strcmp(w[i].str,w[k].str)==0){ w[i].cot++; w[k].cot=0; } } } for(i=0;i<n;i++){ if(w[i].cot)printf("%s:%d\n",w[i].str,w[i].cot); } }