Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
27
Добавлен:
17.04.2013
Размер:
1.35 Кб
Скачать
#include<stdio.h>
#include<string.h>

const m=10;

char *FindWordFile(FILE *in)
{
	char c=0, n=0, i, *word;

	word=new char[m];
	for (i=0;i<=m-1;i++)
		word[i]=0;

	do
	{
		c=fgetc(in);
		if (c!=' ' && !feof(in))
			word[n++]=c;
	}
	while (c!=' ' && !feof(in));

	delete word;
	return word;
}

void main()
{
	char inname[]="d:\\in.txt", outname[]="d:\\out.txt", *word, **words;
	int n=0, i, f=1, p=1;
	FILE *in, *out;

	in=fopen(inname,"r");

	do
	{
		word=FindWordFile(in);
		if (strcmp(word,"")==0)
			continue;
		n++;
	}
	while (!feof(in));

	fclose(in);
	in=fopen(inname,"r");
	out=fopen(outname,"w");

	*words=new char[n];
	for (i=0;i<=n-1;i++)
		words[i]=new char[m];
	n=0;
	do
	{
		word=FindWordFile(in);
		if (strcmp(word,"")==0)
			continue;
		strcpy(words[n],word);
		n++;
	}
	while (!feof(in));

	while (f)
	{
		f=0;
		for (i=0;i<=n-2;i++)
		if (strcmp(words[i],words[i+1])>0)
		{
			strcpy(word,words[i]);
			strcpy(words[i],words[i+1]);
			strcpy(words[i+1],word);
			f=1;
		}
	}

	for (i=0;i<=n-2;i++)
	{
		if (strcmp(words[i],words[i+1])!=0)
		{
			fprintf(out,"%s - %d\n",words[i],p);
			p=0;
		}
		p++;
		if (i==n-2)
			fprintf(out,"%s - %d\n",words[n-1],p);
	}

	fprintf(out,"Total number of words: %d\n",n);

	fclose(in);
	fclose(out);
}
Соседние файлы в папке Lab4