Sestavte funkci, která zjistí počet písmen, číslic, tabelátorů a nových řádků ve znakovém souboru. Funkci použijte v programu, který bude číst soubor z vnějšího zařízení 
Program už víceméně mám (až na tabelátory a nové řádky) ale chtělo by to odladit, program mi počítá pouze první písmena ve slovech a nedaří se mi to upravit, nemam talent na programování a kdybych nemusel ani se ho neučim ale bohužel musím to přetrpět, proto prosím nějakou hodnou duši aby mi poradila v čem je problém, co upravit. Byl bych vám neskutečně vděčný, zde je zdroják 
#include <stdio.h> 
#include <conio.h> 
#include <math.h> 
FILE *f; 
int main () 
{ 
int pocet[256],j,hodnota,pismen,slov; 
f=fopen("text.txt","r"); 
if (f==NULL){printf("soubor se neotevrel\n"); getchar();} 
j=0;slov=0; 
do { 
pocet[j]=0; 
j++; 
} while (j<256); 
while ((hodnota!=EOF)&&((hodnota=getc(f))!=EOF)){ 
pocet[hodnota]++; 
if ((hodnota>='a')&&(hodnota<='z')) { 
pismen=1; 
while (((hodnota=getc(f))!=EOF)&&((hodnota>='a')&&(hodnota<='z'))) { 
pismen++; 
} 
if (pismen>=2) slov++; 
} 
} 
printf ("\n"); 
printf ("Pocet jednotlivych cislic:\n"); 
j=0; do { /* vypis cisel */ 
printf (" %d(%d)",j,pocet[j+'0']); 
j++; 
} while (j<10); printf ("\n"); 
printf ("\n"); 
printf ("Pocet jednotlivych malych pismen:\n"); 
j=0; do { /* vypis malych pismen */ 
printf (" %c(%d)",(char)(j+'a'),pocet[j+'a']); 
j++; 
} while (j<26); printf ("\n"); 
printf ("\n"); 
printf ("Slov %d",slov); 
getchar(); 
getchar(); 
}
tady jsem dostal něco od profesionála ale bohužel to nefunguje, nedaří se mi to v devc odladit 
 
int pismena = 0, cisla = 0, taby = 0, radky = 0; 
FILE * InFile = fopen("soubor.txt", "r"); 
char pismeno; 
while((pismeno = fgetc(InFile)) != EOF) 
{ 
 if(isalpha(pismeno)) pismena++; 
 elseif(isdigit(pismeno)) cisla++; 
 elseif(pismeno == '\t') taby++; 
 elseif(pismeno == '\n') radky++; 
} 
fclose(InFile);