Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабы / C++.Ашарина / !Сделанные / Lab4 / Var7
.cpp#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);
}