字符分割并计数

从文件中读取一行字符,对字符按逗号分割成单词,并计算每个单词出现次数
#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);
    }
}

 

posted @ 2023-02-19 18:42  Maxwell·  阅读(22)  评论(0编辑  收藏  举报