Advertisement
Squall32

C - Real number validation

Sep 19th, 2019
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.39 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int valid=validate_numbers(char number[]);
  6. ///////////////////////////////////////////////////
  7. int main() {
  8.    
  9.     char chain[20];
  10.     float N;
  11.     int valid=0;
  12.    
  13.     do{
  14.         printf("introduce real numbers: ");
  15.         fgets(chain, sizeof(chain), stdin);
  16.         if( chain[strlen(chain)-1] == '\n')
  17.             chain[strlen(chain)-1] = '\0';
  18.         valid=validate_numbers(chain); 
  19.     }while(valid==0);
  20.    
  21.     N=atof(chain);
  22.    
  23.     printf("the float number is: %.2f", N);
  24.    
  25.     getche();
  26.    
  27.     return 0;
  28. }
  29. ///////////////////////////////////////////////////
  30. int valid=validate_numbers(char number[])
  31. {
  32.     int i, long, count=0;
  33.     long = strlen(number);
  34.     for(i=0; i<strlen(number); i++)
  35.     {
  36.         if(!( (number[i]>=48 && number[i]<=57) || number[i]==46 || number[i]==45 ) )
  37.         {
  38.             printf("JUST NUMBERS\n");
  39.             return 0;
  40.         }
  41.        
  42.         if(number[i]==46){
  43.             count++;
  44.             if(count>=2){
  45.                 printf("INTRODUCE A VALID NUMBER\n");
  46.                 return 0;
  47.             }
  48.         }
  49.        
  50.         if(i>0 && number[i]==45){
  51.             printf("INTRODUCE A VALID NUMBER\n");
  52.             return 0;
  53.         }
  54.  
  55.         if( long=1 && (number[0]==45 || number[0]==46) ){
  56.             printf("INTRODUCE A VALID NUMBER\n");
  57.             return 0;
  58.         }
  59.  
  60.         if(long==2 && number[0]==45 && number[1]==46){
  61.             printf("INTRODUCE A VALID NUMBER\n");
  62.             return 0;
  63.         }
  64.     }
  65.     return 1;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement