// 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 10000
typedef 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;
}
c讀取文本文件並將單詞存入數組排序輸出
最新推荐文章于 2021-03-21 16:12:43 发布