Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <ctype.h>
- int main( int argc, char** argv ) {
- enum{start,test_valid,digit_test,test_digit,E__,test_digit_E,test_valid_final_E,test_valid_2,test_valid_final_final,test_valid_final} state=start;
- FILE *in=stdin,*out=stdout;
- if(argc > 1)
- {
- in = fopen(argv[1],"r");
- if (in== NULL)
- {
- fprintf(stderr,"Soubor %s sa nepodarilo otvorit\n",argv[1]);
- }
- }
- if(argc > 2)
- {
- out = fopen(argv[2],"w");
- if (out == NULL)
- {
- fprintf(stderr,"Soubor %s sa nepodarilo otvorit\n",argv[2]);
- }
- }
- char ch;
- while((ch=fgetc(in))!=EOF)
- {
- switch (state) {
- case start:
- if(ch=='+' || ch=='-')
- {
- state=test_digit;
- fputc(ch,out);
- }
- else if(ch=='.')
- {
- state=test_digit;
- fputc(ch,out);
- }
- else if (isdigit(ch))
- {
- state=test_digit;
- fputc(ch,out);
- }
- break;
- case test_digit:
- if (isdigit(ch))
- {
- state=test_digit;
- fputc(ch,out);
- }
- else if(ch=='.')
- {
- state=test_valid_final;
- fputc('.',out);
- }
- else if (ch == 'E')
- {
- fputc('E',out);
- state = test_digit_E;
- }
- else
- {
- state=test_valid_final_final;
- printf("B");
- }
- break;
- /*case test_valid:
- if(isdigit(ch))
- {
- state=test_valid_2;
- fputc(ch,out);
- }
- break;*/
- case test_digit_E:
- if (isdigit(ch))
- {
- state=test_digit_E;
- fputc(ch,out);
- }
- else if(ch=='.')
- {
- state=test_valid_final_E;
- fputc('.',out);
- }
- else
- {
- state=test_valid_final_final;
- }
- break;
- case E__:
- break;
- case test_valid_final_E:
- state=start;
- fputc(ch,out);
- printf(" - nevalidni\n");
- break;
- case test_valid_final:
- fputc(ch,out);
- state = test_digit;
- break;
- case test_valid_final_final:
- printf("BEPIS");
- printf(" - validni\n");
- state = start;
- break;
- default:
- break;
- }
- }
- fclose(in);
- fclose(out);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement