ivana_andreevska

Zad 3 prof.Stojmenski

Jun 9th, 2021
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.09 KB | None | 0 0
  1. Во една датотека vlezna.txt се запишани низи од знаци(содржат букви,цифри и специјални знаци),секоја во посебен ред.Низите знаци,секој за себе,не е поголема од 80 знаци.
  2.  
  3. Да се напише програма со која на стандарден излез ќе го отпечати редот со најголем број знаци што содржи барем една буква,барем една цифра и барем еден специјален знак.Ако нема такви редови,се печати "Nema".Ако има два или повеќе реда што го задоволуваат овој услов се печати првиот ред што го задоволува условот.Знакот за нов ред \n не се смета за специјален знак.
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7. #include <ctype.h>
  8.  
  9. void writeToFile()
  10. {
  11.     FILE *f=fopen("vlezna.txt" , "w");
  12.     char c;
  13.     while((c=getchar())!=EOF)
  14.     {
  15.         fputc(c,f);
  16.     }
  17.     fclose(f);
  18. }
  19.  
  20. int main()
  21. {
  22.     writeToFile();
  23.     FILE *dat=fopen("vlezna.txt" , "r");
  24.     char red[100];
  25.     char maxRed[100];
  26.     int maxDolzina=0;
  27.     int daliNajdenRed=0;
  28.  
  29.     while(fgets(red,81,dat))
  30.     {
  31.         int bukva=0;
  32.         int brojka=0;
  33.         int spec=0;
  34.  
  35.         int i;
  36.  
  37.         for(i=0;i<strlen(red);i++)
  38.         {
  39.             if(isdigit(red[i]))
  40.             {
  41.                 brojka++;
  42.             }
  43.             else if(isalpha(red[i]))
  44.             {
  45.                 bukva++;
  46.             }
  47.             else if(!isspace(red[i]))
  48.             {
  49.                 spec++;
  50.             }
  51.         }
  52.         if(bukva>0 && brojka>0 && spec>0 && strlen(red)>maxDolzina)
  53.         {
  54.             maxDolzina=strlen(red);
  55.             strcpy(maxRed,red);
  56.             daliNajdenRed=1;
  57.         }
  58.     }
  59. if(daliNajdenRed==0)
  60. {
  61.     printf("Nema!");
  62. }
  63. else
  64. printf("%s",maxRed);
  65. fclose(dat);
  66. return 0;
  67. }
  68.  
Advertisement
Add Comment
Please, Sign In to add comment