Here is whole code, but still some parts I am working on..
Code:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <stdbool.h>
typedef struct
{
char cele[21];
int pocet;
char a;
char b;
int length;
}Slovo;
void upravSlovo(char*);
void vstupString(char*);
//bool CompFunc(char*);
int main(void) {
Slovo s[6000];
int cisloSlova = 0;
char c;
printf("\nPress any key");
getchar();
FILE *fr;
fr = fopen("file.txt", "r");
FILE *fh;
fh = fopen("helper.txt", "a+w");
int celkovaDelka = 0;
do
{
c = fgetc(fr);
celkovaDelka++;
}while(feof(fr)==0);
char *obsah;
obsah = (char*)malloc(celkovaDelka);
rewind(fr);
int i = 0;
do
{
c = fgetc(fr);
obsah[i] = c;
i++;
}while(feof(fr)==0);
rewind(fr);
do
{
c = fgetc(fr);
if(isalpha(c))
{
fseek(fr, -1, SEEK_CUR); //zjisti ze je tam alfabet. znak, posune se zpet a nacte slovo
fscanf(fr, "%s", s[cisloSlova].cele);
upravSlovo(s[cisloSlova].cele);
int length = strlen(s[cisloSlova].cele);
if(length>5) {
//if(CompFunc(s[cisloSlova].cele) == true) {
fprintf(fh, "%d " , cisloSlova);
fprintf(fh, "%s\n" , s[cisloSlova].cele);
//printf("\n%d: %s", cisloSlova, s[cisloSlova].cele);
//}
}
cisloSlova++;
}
}while(feof(fr)==0);
fclose(fr);
fclose(fh);
int pocetSlov = cisloSlova;
int o;
for(o=0;o<pocetSlov-1;o++) s[o].pocet = 1;
for(o=0;o<pocetSlov-1;o++)
{
for(i=pocetSlov-1;i>0;i--)
{
if(s[o].cele!=s[i].cele)
{
if(strcmp(s[o].cele, s[i].cele)==0)
{
s[o].pocet++;
}
}
}
printf("\n %s: %d",s[o].cele , s[o].pocet);
}
Slovo max[10];
max[0].pocet = 1;
int maximum = 1;
i = 0;
char *maximalniSlovo;
for(o=0;o<pocetSlov-1;o++)
{
if(s[o].pocet>maximum)
{
maximum = s[o].pocet;
maximalniSlovo = s[o].cele;
max[0].pocet = maximum;
}
}
printf("\n Slovo s maximalnim vyskytem %d - %s", max[0].pocet, maximalniSlovo);
free(obsah);
return 0;
}
void upravSlovo(char *verb)
{
bool upraveno = false;
do
{
if(isalpha(verb[strlen(verb)-1]))
{
upraveno = true;
}
else
{
verb[strlen(verb)-1] = '\0';
}
}while(upraveno==false);
}
void vstupString(char *verb)
{
if(fgets(verb, 20, stdin)!=NULL)
{
char *p = strchr(verb, '\n');
if(p!=NULL) *p = '\0';
}
}
/*bool CompFunc(char *verb) { // Použít rekurzi
int i = 0;
char array[i];
for(;i<=2;i++) {
}
return bool;
}
*/