Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Во една датотека vlezna.txt се запишани низи од знаци(содржат букви,цифри и специјални знаци),секоја во посебен ред.Низите знаци,секој за себе,не е поголема од 80 знаци.
- Да се напише програма со која на стандарден излез ќе го отпечати редот со најголем број знаци што содржи барем една буква,барем една цифра и барем еден специјален знак.Ако нема такви редови,се печати "Nema".Ако има два или повеќе реда што го задоволуваат овој услов се печати првиот ред што го задоволува условот.Знакот за нов ред \n не се смета за специјален знак.
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <ctype.h>
- void writeToFile()
- {
- FILE *f=fopen("vlezna.txt" , "w");
- char c;
- while((c=getchar())!=EOF)
- {
- fputc(c,f);
- }
- fclose(f);
- }
- int main()
- {
- writeToFile();
- FILE *dat=fopen("vlezna.txt" , "r");
- char red[100];
- char maxRed[100];
- int maxDolzina=0;
- int daliNajdenRed=0;
- while(fgets(red,81,dat))
- {
- int bukva=0;
- int brojka=0;
- int spec=0;
- int i;
- for(i=0;i<strlen(red);i++)
- {
- if(isdigit(red[i]))
- {
- brojka++;
- }
- else if(isalpha(red[i]))
- {
- bukva++;
- }
- else if(!isspace(red[i]))
- {
- spec++;
- }
- }
- if(bukva>0 && brojka>0 && spec>0 && strlen(red)>maxDolzina)
- {
- maxDolzina=strlen(red);
- strcpy(maxRed,red);
- daliNajdenRed=1;
- }
- }
- if(daliNajdenRed==0)
- {
- printf("Nema!");
- }
- else
- printf("%s",maxRed);
- fclose(dat);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment