Witam,
wiem, że mój program jest z mnóstwem błędów nie do przyjęcia w programowani w C, ale dopiero zaczynam i nie mam pojęcia jak go poprawić.
Założenie programu:
rozkodowywanie pliku .txt w którym zapisany jest łańcuch znaków składający się z liter i cyfr.
Program zlicza ile jest wyrazów, spacji, cyfr. Następnie tworzy tablice wpisując w niej powstałe wyrazy z cyfr i liczb.
Przykład:
- Ala ma 5 kotow*
wyr[1] wyr[2] cyf[1] wyr[3]
Za każdą pomoc serdecznie dziękuję.
#include <stdio.h>
#include <stdlib.h>
FILE *f;
void main()
{
if ((f=fopen("liczby.txt","r"))==NULL)
{
printf("nie moge otworzyc");
exit(1);
}
int wiersz = 0;
char znak;
while((znak = getc(f)) != EOF)
{
if(znak == '\n')
++wiersz;
}
fclose(f);
if ((f=fopen("liczby.txt","r"))==NULL)
{
printf("nie moge otworzyc");
exit(1);
}
int i=0, sp=0, words=1, s=0, digits=0;
char line[100], temp=32;
for (i=0;i<wiersz;i++)
{
fgets (line, 100, f);
puts(line);
printf("\n Liczba wierszy: %d",wiersz+1);
char tab[i];
int cyf[i];
while(line[i]!='\0')
{
{
if(isspace(line[i]))
{
sp++;
if(isalpha(line[i]))
words++;
line[i]=tab[i];
}
else
{
if(isdigit(line[i]))
{
digits++;
line[i]=cyf[i];
}
else
s++;
}
}
temp=line[i];
i++;
}
for (i=0;i<wiersz;i++)
{
printf("\n Wyrazow = %d Spacji = %d Symboli = %d Cyfr = %d\n",words,sp,s,digits);
printf("\n Wyrazy = %c \n",tab[i]);
printf("\n Cyfry = %d \n",cyf[i]);
}
}
}