// Copyright (C) 2010, Guy Barrand. All rights reserved. // See the file tools.license for terms. #ifndef tools_charmanip #define tools_charmanip namespace tools { // some char ASCII code : // \0 : 0 // \n = LF : 10 // \r = CR : 13 // \t = HT : 9 // , : 44 inline bool is_upper(char a_char) { // do it myself: due to problem with ctype.h and // isxxx macros on different platforms. switch(a_char) { case 'A':return true; case 'B':return true; case 'C':return true; case 'D':return true; case 'E':return true; case 'F':return true; case 'G':return true; case 'H':return true; case 'I':return true; case 'J':return true; case 'K':return true; case 'L':return true; case 'M':return true; case 'N':return true; case 'O':return true; case 'P':return true; case 'Q':return true; case 'R':return true; case 'S':return true; case 'T':return true; case 'U':return true; case 'V':return true; case 'W':return true; case 'X':return true; case 'Y':return true; case 'Z':return true; default:return false; } return false; } inline bool is_lower(char a_char) { switch(a_char) { case 'a':return true; case 'b':return true; case 'c':return true; case 'd':return true; case 'e':return true; case 'f':return true; case 'g':return true; case 'h':return true; case 'i':return true; case 'j':return true; case 'k':return true; case 'l':return true; case 'm':return true; case 'n':return true; case 'o':return true; case 'p':return true; case 'q':return true; case 'r':return true; case 's':return true; case 't':return true; case 'u':return true; case 'v':return true; case 'w':return true; case 'x':return true; case 'y':return true; case 'z':return true; default:return false; } return false; } inline bool is_digit(char a_char) { switch(a_char){ case '0':return true; case '1':return true; case '2':return true; case '3':return true; case '4':return true; case '5':return true; case '6':return true; case '7':return true; case '8':return true; case '9':return true; default:return false; } return false; } inline bool is_letter(char a_char) { return (is_lower(a_char)||is_upper(a_char)) ? true : false; } //inline bool is_alpha(char a_char) { // return (is_lower(a_char)||is_upper(a_char)||is_digit(a_char)) ? true : false; //} inline bool is_printable(char a_char) { if(is_lower(a_char)||is_upper(a_char)||is_digit(a_char)) return true; switch(a_char) { case ' ':return true; case '!':return true; case '"':return true; case '#':return true; case '$':return true; case '%':return true; case '&':return true; case '\'':return true; case '(':return true; case ')':return true; case '*':return true; case '+':return true; case ',':return true; case '-':return true; case '.':return true; case '/':return true; case ':':return true; case ';':return true; case '<':return true; case '=':return true; case '>':return true; case '?':return true; case '@':return true; case '[':return true; case '\\':return true; case ']':return true; case '^':return true; case '_':return true; case '`':return true; case '{':return true; case '|':return true; case '}':return true; case '~':return true; default:return false; } return false; } } #endif