c讀取文本文件並將單詞存入數組排序輸出
来源:互联网 发布:php图片一句话木马 编辑:程序博客网 时间:2024/05/23 02:01
// homework0213.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include<stdlib.h>#include <string.h>#include <ctype.h>#define NUM 20#define COUNT 10000typedef struct words{ char word[NUM]; int count; }Words;Words text[COUNT];int rc = 0; void store(char* word){ int i=0; int flag = 0; if(rc==0) { strcpy(text[rc].word,word); text[rc].count = 1; rc++; } else { for(i=0;i<rc;++i) if(strcmp(text[i].word,word)==0) { flag = 1; text[i].count++; break; } if(!flag) { strcpy(text[rc].word,word); text[rc].count = 1; rc++; } }}void swap(Words& from,Words& to){ Words temp; strcpy(temp.word,from.word); temp.count = from.count; strcpy(from.word,to.word); from.count = to.count; strcpy(to.word,temp.word); to.count=temp.count;}void bubbleSort(){ int i,j; for(i=rc-1;i>0;--i) for(j=0;j<i;++j) if(text[j].count<text[j+1].count || (text[j].count<text[j+1].count && strcmp(text[j].word,text[j+1].word)==1)) swap(text[j],text[j+1]);}int _tmain(int argc, _TCHAR* argv[]){char temp[NUM]; int len = 0; char c; FILE * pFile; pFile = fopen ("out.txt","r"); if (pFile==NULL) perror ("Error opening file"); else { do { c = fgetc (pFile); if (isspace(c) || ispunct(c)) { temp[len] = '\0'; len = 0; store(temp); } else { if(isupper(c)) c = c+32; temp[len++] = c; } }while (c != EOF); fclose (pFile); } bubbleSort(); for(int i=0;i<5;++i) { printf("%s\t %d\t\n",text[i].word,text[i].count); }system("pause");return 0;}