Mcluffin

nameCheck

Mar 15th, 2012
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.75 KB | None | 0 0
  1. int validateName (void)
  2. {
  3.     char buffer[81] = "";
  4.     int valid = VALID;
  5.     while(1)
  6.     {
  7.         valid = VALID;
  8.  
  9.         printf("Name: ");
  10.  
  11.         fgets(buffer, (BUFFER_SIZE -1), stdin);
  12.  
  13.         if(buffer[0] == '\n')
  14.         {
  15.             valid = QUIT_CONDITION;
  16.             break;
  17.         }
  18.         else if(strlen(buffer) > 30 || strlen(buffer) < 1)
  19.         {
  20.             valid = INVALID;
  21.         }
  22.         else
  23.         {
  24.             for(int i = 0; i < strlen(buffer); ++i)
  25.             {
  26.                 //A-Z range
  27.                 if((buffer[i] >= 0x41) && (buffer[i] <= 0x5A))
  28.                 {
  29.                     continue;
  30.                 }
  31.                 //a-z range
  32.                 else if((buffer[i] >= 0x61) && (buffer[i] <= 0x7A))
  33.                 {
  34.                     continue;
  35.                 }
  36.                 //Foreign characters
  37.                 else if((buffer[i] >= 0x80) && (buffer[i] <= 0x9A))
  38.                 {
  39.                     continue;
  40.                 }
  41.                 //More foreign characters
  42.                 else if((buffer[i] >= 0xA0) && (buffer[i] <= 0xA5))
  43.                 {
  44.                     continue;
  45.                 }
  46.                 //0-9 range
  47.                 else if((buffer[i] >= 0x30) && (buffer[i] <= 0x39))
  48.                 {
  49.                     continue;
  50.                 }
  51.                 //Checks for special characters accepted as per the requirements.
  52.                 else if((buffer[i] == ' ') || (buffer[i] == '!') || (buffer[i] == '&') || (buffer[i] == '(') (buffer[i] == ')') ||(buffer[i] == '+'))
  53.                 {
  54.                     continue;
  55.                 }
  56.                 //More special characters.
  57.                 else if((buffer[i] == '-') || (buffer[i] == '.') || (buffer[i] == '/') || (buffer[i] == '@') || (buffer[i] == '[') || (buffer[i] == ']'))
  58.                 {
  59.                     continue;
  60.                 }
  61.                 else
  62.                 {
  63.                     valid = INVALID;
  64.                     break;
  65.                 }
  66.             }
  67.         }
  68.         //If all characters are valid, or if ENTER was pressed, exit the loop.
  69.         if (valid == VALID)
  70.         {
  71.             break;
  72.         }
  73.         else if(valid == QUIT_CONDITION)
  74.         {
  75.             break;
  76.         }
  77.         //If the input was invalid, check
  78.         else
  79.         {
  80.             printf("\nSorry, that name isn't valid. Try again, or press ENTER to quit. \nName: ");
  81.         }
  82.     }
  83.  
  84.     return valid;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment