inlib  1.2.0
/Users/barrand/private/dev/softinex/old/inexlib-1.2/inlib/inlib/charmanip
Go to the documentation of this file.
00001 // Copyright (C) 2010, Guy Barrand. All rights reserved.
00002 // See the file inlib.license for terms.
00003 
00004 #ifndef inlib_charmanip
00005 #define inlib_charmanip
00006 
00007 namespace inlib {
00008 
00009 // some char ASCII code :
00010 // \0      : 0
00011 // \n = LF : 10 
00012 // \r = CR : 13
00013 // \t = HT : 9
00014 // ,       : 44
00015 
00016 inline bool is_upper(char a_char) {
00017   // do it myself: due to problem with ctype.h and 
00018   // isxxx macros on different platforms.
00019   switch(a_char) {
00020     case 'A':return true;
00021     case 'B':return true;
00022     case 'C':return true;
00023     case 'D':return true;
00024     case 'E':return true;
00025     case 'F':return true;
00026     case 'G':return true;
00027     case 'H':return true;
00028     case 'I':return true;
00029     case 'J':return true;
00030     case 'K':return true;
00031     case 'L':return true;
00032     case 'M':return true;
00033     case 'N':return true;
00034     case 'O':return true;
00035     case 'P':return true;
00036     case 'Q':return true;
00037     case 'R':return true;
00038     case 'S':return true;
00039     case 'T':return true;
00040     case 'U':return true;
00041     case 'V':return true;
00042     case 'W':return true;
00043     case 'X':return true;
00044     case 'Y':return true;
00045     case 'Z':return true;
00046     default:return false;
00047   }
00048   return false;
00049 }
00050 
00051 inline bool is_lower(char a_char) {
00052   switch(a_char) {
00053     case 'a':return true;
00054     case 'b':return true;
00055     case 'c':return true;
00056     case 'd':return true;
00057     case 'e':return true;
00058     case 'f':return true;
00059     case 'g':return true;
00060     case 'h':return true;
00061     case 'i':return true;
00062     case 'j':return true;
00063     case 'k':return true;
00064     case 'l':return true;
00065     case 'm':return true;
00066     case 'n':return true;
00067     case 'o':return true;
00068     case 'p':return true;
00069     case 'q':return true;
00070     case 'r':return true;
00071     case 's':return true;
00072     case 't':return true;
00073     case 'u':return true;
00074     case 'v':return true;
00075     case 'w':return true;
00076     case 'x':return true;
00077     case 'y':return true;
00078     case 'z':return true;
00079     default:return false;
00080   }
00081   return false;
00082 }
00083 
00084 inline bool is_digit(char a_char) {
00085   switch(a_char){
00086     case '0':return true;
00087     case '1':return true;
00088     case '2':return true;
00089     case '3':return true;
00090     case '4':return true;
00091     case '5':return true;
00092     case '6':return true;
00093     case '7':return true;
00094     case '8':return true;
00095     case '9':return true;
00096     default:return false;
00097   }
00098   return false;
00099 }
00100 
00101 inline bool is_letter(char a_char) { 
00102   return (is_lower(a_char)||is_upper(a_char)) ? true : false;
00103 }
00104 
00105 //inline bool is_alpha(char a_char) { 
00106 //  return (is_lower(a_char)||is_upper(a_char)||is_digit(a_char)) ? true : false;
00107 //}
00108 
00109 inline bool is_printable(char a_char) { 
00110   if(is_lower(a_char)||is_upper(a_char)||is_digit(a_char)) return true;
00111   switch(a_char) {
00112     case ' ':return true;
00113     case '!':return true;
00114     case '"':return true;
00115     case '#':return true;
00116     case '$':return true;
00117     case '%':return true;
00118     case '&':return true;
00119     case '\'':return true;
00120     case '(':return true;
00121     case ')':return true;
00122     case '*':return true;
00123     case '+':return true;
00124     case ',':return true;
00125     case '-':return true;
00126     case '.':return true;
00127     case '/':return true;
00128     case ':':return true;
00129     case ';':return true;
00130     case '<':return true;
00131     case '=':return true;
00132     case '>':return true;
00133     case '?':return true;
00134     case '@':return true;
00135     case '[':return true;
00136     case '\\':return true;
00137     case ']':return true;
00138     case '^':return true;
00139     case '_':return true;
00140     case '`':return true;
00141     case '{':return true;
00142     case '|':return true;
00143     case '}':return true;
00144     case '~':return true;
00145     default:return false;
00146   }
00147   return false;
00148 }
00149 
00150 }
00151 
00152 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines