Witam, mam takie zadanie:
Napisać program, który policzy ile razy każde ze słów występuje w tekście wejściowym. Słowa należy wypisać kolejno w osobnych wierszach poprzedzając je ilościa wystąpień wypisaną na 5 znakach. Uzyć do przechowywania słów tablicy napisów. Zakładamy że słowa są nie dłuższe niż 40 znaków i nie ma więcej róznych słów niż 1000. Użyć funkcji operujących na napisach opisanych w string.h.
Poki co napisalem cos takiego:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define IN 1 // w slowie
#define OUT 0 //poza slowem
main ()
{
int c, stan,i,j,dl;
char lancuch[1000][40];
i=j=0;
stan=OUT;
while ((c = getchar()) !=EOF)
{
if (c == ' ' || c == '\n' || c == '\t')
{
lancuch[i][j]=c;
j++;
if (stan == IN)
{
stan = OUT;
i++;
j=0;
}
} else if (stan == OUT)
{
stan = IN; //poczatek slowa
}
}
for(i=0; i<=4;i++)
{
dl=strlen(lancuch[i]);
for (j=0; j<=dl; j++)
printf("%s\n", lancuch[i][j]);
}
}
i na razie tylko chce osiagnac zeby wypisalo mi te lancuchy i moj zamysl byl taki, ze np po wpisaniu do wejscia
test test1 test2
uzyskac:
lancuch[1] - test
lancuch[2] - test1
lancuch[3] - test2
wobec tego, czy ten kod jest napisany dobrze? jesli tak, to dlaczego nie chce go wyswietlac? A jesli nie, to gdzie mam blad? z gory dziekuje za odpowiedz :)