Advertisement
martinkotevski

SP - Zborovi so ista pocetna i zavrsna buvka

Dec 22nd, 2015
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. Да се напише програма која ќе ги пронаоѓа сите зборови кои истовремено почнуваат и завршуваат на дадена буква во датотеката со име „zborovi.txt“. Во првиот ред на оваа датотека е запишана само бараната буква. Програмата треба да ги ископира сите вакви зборови на стандарден излез, пришто мора да е запазен редоследот на редовите (зборовите кои се наоѓале во вториот ред на „zborovi.txt“ треба да бидат ископирани во првиот ред на излезот, зборовите од третиот ред да бидат ископирани во вториот ред на излезот, итн.). Меѓу секои два збора мора да има точно едно празно место. На крај, во нов ред да се испечати и бројот на сите ископирани зборови. Да се претпостави дека зборовите во датотеката „zborovi.txt“ се составени од алфанумерички знаци и се меѓусебно разделени со еден или повеќе специјални знаци/празни места. Максималниот број на знаци во еден ред е 100. Забелешка. После последниот збор во секој ред да се отпечати точно едно празно место.
  3. SAMPLE INPUT:
  4. a
  5. ama zoshto ama kako, nema ama!!
  6. ana saka da bide kako sestra i' ana.
  7. eh  taa   ana...
  8. SAMPLE OUTPUT:
  9. ama ama ama
  10. ana ana
  11. ana
  12. 6
  13.  */
  14. #include <stdio.h>
  15. #include <ctype.h>
  16.  
  17. void wtf() {
  18.     FILE *f = fopen("zborovi.txt", "w");
  19.     char c;
  20.     while((c = getchar()) != EOF) {
  21.         fputc(c, f);
  22.     }
  23.     fclose(f);
  24. }
  25.  
  26. int main() {
  27.     wtf();
  28.     int iw = 0, counter = 0, i = 0;
  29.     char c, zbor[20];
  30.     FILE *dat = fopen("zborovi.txt", "r");
  31.     char bukva = fgetc(dat);
  32.    
  33.     while ((c = fgetc(dat)) != EOF) {
  34.         if (isalnum(c)) {
  35.             iw = 1;
  36.             zbor[i] = c;
  37.             i++;
  38.         }
  39.         else {
  40.             zbor[i] = '\0';
  41.             if (iw) {
  42.                 if (bukva == zbor[0]&&bukva == zbor[i-1]) {
  43.                     counter++;
  44.                     printf("%s ", zbor);
  45.                 }
  46.             }
  47.             i = 0;
  48.             iw = 0;
  49.         }
  50.         if (c=='\n')
  51.             printf("\n");    
  52.     }
  53.     printf("%d", counter);
  54.     fclose(dat);
  55.     return 0;    
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement