Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* INSTRUKCIJE IZ C PROGRAMIRANJA
- Za sve upite i informacije na e-mail:
- HC.Instructions@gmail.com
- */
- /* POSTAVKA
- Napišite program koji učitava rečenicu od naviše 80 znakova i sprema u
- odgovarajući string.
- Napisati funkciju kojoj se string prenosi kao argument i koja upisuje učitanu
- rečenicu u tekstualnu datoteku. Zatvoriti datoteku.
- Napisati drugu funkciju koja će otvoriti datoteku, pročitati rečenicu iz nje
- i prebrojati koliko se puta pojavilo pojedino veliko slovo u rečenici i ukupni
- broj takvih znakova, te ispisati rezultat prebojavanja u tabličnom obliku, npr.:
- slovo| broj
- ===========
- A | 7
- B | 11
- …
- Z | 0
- ===|=====
- Uk. | 18
- U istoj funkciji, u pročitanoj rečenici pretvoriti sva velika slova u mala i dodati kao novu rečenicu na kraj datoteke.
- U istoj funkciji, izračunati koliko je datoteka velika i zatvoriti je. Ispisati duljinu datoteke (u bajtovima).
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <ctype.h>
- void intro();
- int write(char recenica[]);
- int read_and_count();
- int main()
- {
- char unos[80+1];
- int i;
- intro();
- printf("Unesite recenicu do 80 znakova duzine (jedan red u konzoli).\n");
- printf("Unesite \"xxx\" za testnu recenicu (radi ustede tipkanja).\n");
- for (i=0; i<80; i++) printf("-"); //printa line
- scanf("%80[^\n]", unos);
- //detekcija i postavljanje probne recenice
- if (strcmp("xxx",unos) == 0) strcpy(unos, "QuIcKKK BrOwN FoXX JuMpS over ThE LaZZZZy DoGGie!");
- write(unos);
- read_and_count();
- return 0;
- }
- int write(char recenica[])
- {
- FILE *datoteka = NULL;
- datoteka = fopen("unos.txt", "w");
- if (datoteka == NULL)
- {
- printf(" *** Greska pri otvaranju datoteke!");
- exit(1);
- }
- else
- {
- fprintf(datoteka, "%s\n", recenica);
- fclose(datoteka);
- }
- return 0;
- }
- int read_and_count()
- {
- FILE *datoteka = NULL;
- char recenica_read[80+1];
- char recenica_write[80+1];
- int database[26] = {0};
- char current_char;
- int length, total = 0;
- int i, j;
- { //****** otvaranje datoteke i citanje
- datoteka = fopen("unos.txt", "r");
- if (datoteka == NULL)
- {
- printf(" *** Greska pri otvaranju datoteke!");
- exit(1);
- }
- else
- {
- fscanf(datoteka, "%[^\n]", recenica_read);
- fgetc(datoteka); //preskoči NewLine character
- fclose(datoteka);
- }
- }
- { //****** prebrojavanje
- //kretanje po slovima
- for (i=0; i<26; i++)
- {
- current_char = i+65;
- length = strlen(recenica_read);
- //kretanje po recenici
- for (j=0; j<length; j++)
- {
- //ako trenutni znak u recenici odgovoara trenutno testiranom (current_char) znaku, digni njegov index u database za 1
- if (recenica_read[j] == current_char)
- {
- database[i] = database[i] + 1; //povećaj vrijednost za taj znak u polju
- total = total + 1; //povećaj counter za ukupni broj velikih slova
- }
- }
- }
- }
- { //****** ispis rezultata
- system("cls");
- printf("Recenica:\n");
- printf("%s\n\n\n", recenica_read);
- //prvih 13 slova (A-M)
- //zaglavlje
- printf("| Slovo |");
- for (i=0; i<13; i++)
- {
- current_char = i+65;
- printf(" %c |", current_char);
- }
- printf("\n");
- //spacer
- printf("+-------+");
- for (i=0; i<13; i++)
- {
- printf("----+");
- }
- printf("\n");
- //podatci
- printf("| Broj |");
- for (i=0; i<13; i++)
- {
- current_char = i+65;
- if (database[i] == 0) printf(" . |"); //ispisuje točku umjesto nule (lakše vidjeti rezultate)
- else printf(" %2d |", database[i]);
- }
- printf("\n\n\n\n");
- //drugih 13 slova (N-Z)
- //zaglavlje
- printf("| Slovo |");
- for (i=13; i<26; i++)
- {
- current_char = i+65;
- printf(" %c |", current_char);
- }
- printf("\n");
- //spacer
- printf("+-------+");
- for (i=13; i<26; i++)
- {
- printf("----+");
- }
- printf("\n");
- //podatci
- printf("| Broj |");
- for (i=13; i<26; i++)
- {
- current_char = i+65;
- if (database[i] == 0) printf(" . |"); //ispisuje točku umjesto nule (lakše vidjeti rezultate)
- else printf(" %2d |", database[i]);
- }
- printf("\n\n\n");
- printf("Ukupno velikih slova: %d\n\n\n", total);
- system("pause");
- }
- { //****** Convert velika slova u mala & append to the end
- length = strlen(recenica_read);
- //kretanje po recenici
- for (j=0; j<length; j++)
- {
- //ako je trenutni znak veliko slovo...
- if (isupper(recenica_read[j]) != 0)
- {
- //...zapiši ga na istu poziciju u drugom polju kao malo slovo (putem tolower() funkcije)
- recenica_write[j] = tolower(recenica_read[j]);
- }
- else
- {
- //Ako nije veliko slovo, samo ga prepiši
- recenica_write[j] = recenica_read[j];
- }
- }
- recenica_write[length] = '\0'; //manualno dodavanje terminalnog znaka! Obavezno!
- //ispis na ekranu
- system("cls");
- printf("Originalna recenica:\n");
- printf("%s\n\n", recenica_read);
- printf("Recenica sa iskljucivo malim slovima:\n");
- printf("%s\n\n\n", recenica_write);
- //Otvaranje datoteke za dodavanje
- datoteka = fopen("unos.txt", "a");
- if (datoteka == NULL)
- {
- printf(" *** Greska pri otvaranju datoteke!");
- exit(1);
- }
- else
- {
- //zapisivanje u datoteku
- fprintf(datoteka, "%s\n", recenica_write);
- printf("\n\n *** Nova recenica dodana u datoteku!");
- }
- //size of file & close
- rewind(datoteka);
- fseek(datoteka, 0L, SEEK_END);
- printf("\n\n *** Velicina datoteke: %.0f byte", (double)ftell(datoteka));
- fclose(datoteka);
- }
- }
- void intro()
- {
- printf(" ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ\n");
- printf(" Ű۲±°° ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» °°±˛ŰŰ \n");
- printf(" ۲±° ÉĽ Č» °±˛Ű \n");
- printf(" ۲±° ş Ż INSTRUKCIJE IZ PROGRAMIRANJA U C-u ® ş °±˛Ű \n");
- printf(" ۲±° Č» ÉĽ °±˛Ű \n");
- printf(" ۲±° ČËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËĽ °±˛Ű \n");
- printf(" ۲±° ş ş °±˛Ű \n");
- printf(" ۲±° ş ţ 4-godisnje iskustvo, primarno sa studentima ş °±˛Ű \n");
- printf(" ۲±° ş TVZ-a s racunarstva i informatike ş °±˛Ű \n");
- printf(" ۲±° ş ş °±˛Ű \n");
- printf(" ۲±° ş ţ prilagodjenost programu i ucenje kroz praksu ş °±˛Ű \n");
- printf(" ۲±° ş ş °±˛Ű \n");
- printf(" ۲±° ş ţ individualne, grupne i intenzivne instrukcije ş °±˛Ű \n");
- printf(" ۲±° ş ş °±˛Ű \n");
- printf(" ۲±° ş ţ sat instrukcija vec od 25 kn! *** ş °±˛Ű \n");
- printf(" ۲±° ş ş °±˛Ű \n");
- printf(" ۲±° ş ş °±˛Ű \n");
- printf(" ۲±° ş ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ KONTAKT ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄż ş °±˛Ű \n");
- printf(" ۲±° ş ł ł ş °±˛Ű \n");
- printf(" ۲±° ş ł HC.Instructions@gmail.com ł ş °±˛Ű \n");
- printf(" ۲±° ş ł ł ş °±˛Ű \n");
- printf(" ۲±° Č» ŔÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŮ ÉĽ °±˛Ű \n");
- printf(" ۲±° ş ş °±˛Ű \n");
- printf(" ۲±° ş *** = ovisno od odabrane opcije. 1 h = 60 min. ş °±˛Ű \n");
- printf(" Ű۲±°° ČÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍĽ °°±˛ŰŰ");
- getch();
- system("cls");
- }
Add Comment
Please, Sign In to add comment