Advertisement
Mihajlo_K

9.3 Зборови палиндроми

Mar 19th, 2019
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.05 KB | None | 0 0
  1. /* Да се направи програма која од влезната датотека „text.txt“ ќе ги одреди и отпечати сите зборови палиндроми во излезната датотека „print.txt“. Да се избегнуваат интерпукциските знаци точка (.) и запирка (,) и да не се прави разлика меѓу големи и мали букви.
  2.  
  3. Забелешка: Да не се менуваат дадените функции writeToFile() и printFile(). Тие служат за креирање и проверка на потребните датотеки. */
  4.  
  5. #include <stdio.h>
  6. #include <ctype.h>
  7. #include <string.h>
  8.  
  9. void writeToFile() {
  10.     FILE *f = fopen("text.txt", "w");
  11.     char c;
  12.     while((c = getchar()) != '#') {
  13.         fputc(c, f);
  14.     }
  15.     fclose(f);
  16. }
  17.  
  18. void printFile() {
  19.     FILE *f=fopen("print.txt","r");
  20.     char line[100];
  21.     while(!feof(f)){
  22.         fgets(line,100,f);
  23.         if (feof(f))
  24.             break;
  25.         printf("%s",line);
  26.     }
  27.     fclose(f);
  28. }
  29.  
  30. int main() {
  31.     writeToFile();
  32.    
  33.     //Vasiot kod tuka
  34.    
  35.     int palindrom (char *x);
  36.    
  37.     FILE * fpinput;
  38.     FILE * fpprint;
  39.     fpinput = fopen("text.txt", "r");
  40.        
  41.     if(NULL == fpinput)
  42.     {
  43.         printf("GRESKA PRI OTVORANJE DATOTEKA");
  44.         return -1;
  45.     }
  46.    
  47.     fpprint = fopen("print.txt", "w");
  48.     char zbor[100];
  49.     while((fscanf(fpinput,"%s",zbor))!=EOF)
  50.     {
  51.         if(palindrom(zbor))
  52.             fprintf(fpprint,"%s\n",zbor);
  53.     }
  54.    
  55.     fclose(fpprint);
  56.     fclose(fpinput);
  57.    
  58.     printFile();
  59.     return 0;
  60. }
  61.  
  62. int palindrom (char *x){
  63.     int len = strlen(x);
  64.     int i;
  65.     for(i = 0; i < (len/2); i++)
  66.     {
  67.         if(x[len-1] == ',')
  68.         {
  69.             if(tolower(x[i])!=tolower(x[len-i-2]))
  70.                 return 0;
  71.         }
  72.         else
  73.         {
  74.             if(tolower(x[i])!=tolower(x[len-i-1]))
  75.                 return 0;
  76.         }
  77.     }
  78.     if(x[len-1] == ',')
  79.     {
  80.         x[len-1] = '\0';
  81.     }
  82.    
  83.     return 1;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement