#include #include #include #include /* Uvjetno kopiranje rijeci (filter ulaza). Citanje rijeci funkcijom fscanf s %s formatom. Uvjet petlje = fscanf uspjesno ucita rijec. */ int main(int argc, char *argv[]) { char s[129]; FILE *ulaz, *izlaz; int uvjet, n, i; /* Broj argumenata NE treba provjeravati! */ /* if (argc != 3) { printf("Greska - nema imena datoteka!\n"); exit(1); } */ /* Kontrolni ispis na stdout. */ printf("Ulazna datoteka: %s\n", argv[1]); printf("Izlazna datoteka: %s\n", argv[2]); if ((ulaz = fopen(argv[1], "r")) == NULL) { printf(" Greska na ulazu!\n"); exit(2); } if ((izlaz = fopen(argv[2], "w")) == NULL) { printf(" Greska na izlazu!\n"); exit(3); } /* Uociti test u while: " ... == 1". */ while (fscanf(ulaz, "%128s", s) == 1) { n = strlen(s); /* Kontrolni ispis na stdout. */ printf("duljina = %d, rijec = %s\n", n, s); if (n > 4) { uvjet = 1; i = 0; /* U uvjetu petlje, umjesto i < n, moze se staviti s[i] != '\0'. */ while (i < n && uvjet) { uvjet = uvjet && !isalpha(s[i]); ++i; } if (uvjet) fprintf(izlaz, "%s\n", s); } } fclose(ulaz); fclose(izlaz); return 0; }