Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Една датотека “log.txt” се состои од зборови(групации од различни знаци) секој запишан во посебен ред. Еден збор не е поголем од 20 знаци.
- Нас не интересираат зборовите кои имаат една од следниве 3 форми:
- Се состојат само од букви
- Имаат една цифра, барем еден специјален знак и барем една буква
- Почнуваат со 2 цифри, а продолжуваат со една или повеќе букви и пак завршуваат со 2 цифри
- Напишете програма што ќе изброи колку такви зборови има во датотеката. Резултатот се печати на стандарден излез
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <ctype.h>
- int main()
- {
- FILE *p=fopen("log.txt" , "r");
- char niza[21];
- while(fgets(niza,21,p))
- {
- int dolzina=strlen(niza);
- int br_bukvi=0;
- int br_cifri=0;
- int br_znaci=0;
- int i;
- for(i=0;i<dolzina;i++)
- {
- if(isdigit(niza[i]))
- {
- br_cifri++;
- }
- else if(isalpha(niza[i]))
- {
- br_bukvi++;
- }
- else{
- br_znaci++;
- }
- }
- if(dolzina==br_bukvi)
- {
- printf("%s",niza);
- continue;
- }
- if(br_bukvi>0 &&br_cifri>0 && br_znaci>0)
- {
- printf("%s",niza);
- continue;
- }
- if(isdigit(niza[0]) && isdigit(niza[i]) && isdigit(niza[dolzina-1]) && isdigit(niza[dolzina-2]))
- {
- if(4+br_bukvi==dolzina)
- {
- printf("%s",niza);
- }
- }
- }
- fclose(p);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment