WCharacter.h
Go to the documentation of this file.
1 /* $Id: WCharacter.h 1156 2011-06-07 04:01:16Z bhagman $
2 ||
3 || @author Hernando Barragan <b@wiring.org.co>
4 || @url http://wiring.org.co/
5 || @contribution Brett Hagman <bhagman@wiring.org.co>
6 || @contribution Alexander Brevig <abrevig@wiring.org.co>
7 ||
8 || @description
9 || | Character classification and conversion functions.
10 || |
11 || | Wiring Common API
12 || #
13 ||
14 || @license Please see cores/Common/License.txt.
15 ||
16 */
17 
18 #pragma once
19 
20 // WCharacter.h prototypes
21 inline bool isAlphaNumeric(int c) __attribute__((always_inline));
22 inline bool isAlpha(int c) __attribute__((always_inline));
23 //inline bool isAscii(int c) __attribute__((always_inline));
24 inline bool isWhitespace(int c) __attribute__((always_inline));
25 inline bool isControl(int c) __attribute__((always_inline));
26 inline bool isDigit(int c) __attribute__((always_inline));
27 inline bool isGraph(int c) __attribute__((always_inline));
28 inline bool isLowerCase(int c) __attribute__((always_inline));
29 inline bool isPrintable(int c) __attribute__((always_inline));
30 inline bool isPunct(int c) __attribute__((always_inline));
31 inline bool isSpace(int c) __attribute__((always_inline));
32 inline bool isUpperCase(int c) __attribute__((always_inline));
33 inline bool isHexadecimalDigit(int c) __attribute__((always_inline));
34 //inline int toAscii(int c) __attribute__((always_inline));
35 inline int toLowerCase(int c) __attribute__((always_inline));
36 inline int toUpperCase(int c)__attribute__((always_inline));
37 
38 
39 // Checks for an alphanumeric character.
40 // It is equivalent to (isalpha(c) || isdigit(c)).
41 inline bool isAlphaNumeric(int c)
42 {
43  return (isalnum(c) == 0 ? false : true);
44 }
45 
46 
47 // Checks for an alphabetic character.
48 // It is equivalent to (isupper(c) || islower(c)).
49 inline bool isAlpha(int c)
50 {
51  return (isalpha(c) == 0 ? false : true);
52 }
53 
54 /*
55 // Checks whether c is a 7-bit unsigned char value
56 // that fits into the ASCII character set.
57 inline bool isAscii(int c)
58 {
59  return (isascii(c) == 0 ? false : true);
60 }*/
61 
62 
63 // Checks for a blank character, that is, a space or a tab.
64 inline bool isWhitespace(int c)
65 {
66  return (isblank(c) == 0 ? false : true);
67 }
68 
69 
70 // Checks for a control character.
71 inline bool isControl(int c)
72 {
73  return (iscntrl(c) == 0 ? false : true);
74 }
75 
76 
77 // Checks for a digit (0 through 9).
78 inline bool isDigit(int c)
79 {
80  return (isdigit(c) == 0 ? false : true);
81 }
82 
83 
84 // Checks for any printable character except space.
85 inline bool isGraph(int c)
86 {
87  return (isgraph(c) == 0 ? false : true);
88 }
89 
90 
91 // Checks for a lower-case character.
92 inline bool isLowerCase(int c)
93 {
94  return (islower(c) == 0 ? false : true);
95 }
96 
97 
98 // Checks for any printable character including space.
99 inline bool isPrintable(int c)
100 {
101  return (isprint(c) == 0 ? false : true);
102 }
103 
104 
105 // Checks for any printable character which is not a space
106 // or an alphanumeric character.
107 inline bool isPunct(int c)
108 {
109  return (ispunct(c) == 0 ? false : true);
110 }
111 
112 
113 // Checks for white-space characters. For the avr-libc library,
114 // these are: space, formfeed (’\f’), newline (’\n’), carriage
115 // return (’\r’), horizontal tab (’\t’), and vertical tab (’\v’).
116 inline bool isSpace(int c)
117 {
118  return (isspace(c) == 0 ? false : true);
119 }
120 
121 
122 // Checks for an uppercase letter.
123 inline bool isUpperCase(int c)
124 {
125  return (isupper(c) == 0 ? false : true);
126 }
127 
128 
129 // Checks for a hexadecimal digits,
130 // i.e. one of 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F.
131 inline bool isHexadecimalDigit(int c)
132 {
133  return (isxdigit(c) == 0 ? false : true);
134 }
135 
136 /*
137 // Converts c to a 7-bit unsigned char value that fits into the
138 // ASCII character set, by clearing the high-order bits.
139 inline int toAscii(int c)
140 {
141  return toascii(c);
142 }*/
143 
144 
145 // Warning:
146 // Many people will be unhappy if you use this function.
147 // This function will convert accented letters into random
148 // characters.
149 
150 // Converts the letter c to lower case, if possible.
151 inline int toLowerCase(int c)
152 {
153  return tolower(c);
154 }
155 
156 
157 // Converts the letter c to upper case, if possible.
158 inline int toUpperCase(int c)
159 {
160  return toupper(c);
161 }
bool isDigit(int c) __attribute__((always_inline))
Definition: WCharacter.h:78
int toLowerCase(int c) __attribute__((always_inline))
Definition: WCharacter.h:151
int toUpperCase(int c) __attribute__((always_inline))
Definition: WCharacter.h:158
bool isGraph(int c) __attribute__((always_inline))
Definition: WCharacter.h:85
bool isUpperCase(int c) __attribute__((always_inline))
Definition: WCharacter.h:123
bool isLowerCase(int c) __attribute__((always_inline))
Definition: WCharacter.h:92
bool isWhitespace(int c) __attribute__((always_inline))
Definition: WCharacter.h:64
bool isPunct(int c) __attribute__((always_inline))
Definition: WCharacter.h:107
bool isHexadecimalDigit(int c) __attribute__((always_inline))
Definition: WCharacter.h:131
bool isAlphaNumeric(int c) __attribute__((always_inline))
Definition: WCharacter.h:41
bool isPrintable(int c) __attribute__((always_inline))
Definition: WCharacter.h:99
bool isAlpha(int c) __attribute__((always_inline))
Definition: WCharacter.h:49
bool isSpace(int c) __attribute__((always_inline))
Definition: WCharacter.h:116
bool isControl(int c) __attribute__((always_inline))
Definition: WCharacter.h:71