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 // Checks for an alphanumeric character.
39 // It is equivalent to (isalpha(c) || isdigit(c)).
40 inline bool isAlphaNumeric(int c)
41 {
42  return (isalnum(c) == 0 ? false : true);
43 }
44 
45 // Checks for an alphabetic character.
46 // It is equivalent to (isupper(c) || islower(c)).
47 inline bool isAlpha(int c)
48 {
49  return (isalpha(c) == 0 ? false : true);
50 }
51 
52 /*
53 // Checks whether c is a 7-bit unsigned char value
54 // that fits into the ASCII character set.
55 inline bool isAscii(int c)
56 {
57  return (isascii(c) == 0 ? false : true);
58 }*/
59 
60 // Checks for a blank character, that is, a space or a tab.
61 inline bool isWhitespace(int c)
62 {
63  return (isblank(c) == 0 ? false : true);
64 }
65 
66 // Checks for a control character.
67 inline bool isControl(int c)
68 {
69  return (iscntrl(c) == 0 ? false : true);
70 }
71 
72 // Checks for a digit (0 through 9).
73 inline bool isDigit(int c)
74 {
75  return (isdigit(c) == 0 ? false : true);
76 }
77 
78 // Checks for any printable character except space.
79 inline bool isGraph(int c)
80 {
81  return (isgraph(c) == 0 ? false : true);
82 }
83 
84 // Checks for a lower-case character.
85 inline bool isLowerCase(int c)
86 {
87  return (islower(c) == 0 ? false : true);
88 }
89 
90 // Checks for any printable character including space.
91 inline bool isPrintable(int c)
92 {
93  return (isprint(c) == 0 ? false : true);
94 }
95 
96 // Checks for any printable character which is not a space
97 // or an alphanumeric character.
98 inline bool isPunct(int c)
99 {
100  return (ispunct(c) == 0 ? false : true);
101 }
102 
103 // Checks for white-space characters. For the avr-libc library,
104 // these are: space, formfeed (’\f’), newline (’\n’), carriage
105 // return (’\r’), horizontal tab (’\t’), and vertical tab (’\v’).
106 inline bool isSpace(int c)
107 {
108  return (isspace(c) == 0 ? false : true);
109 }
110 
111 // Checks for an uppercase letter.
112 inline bool isUpperCase(int c)
113 {
114  return (isupper(c) == 0 ? false : true);
115 }
116 
117 // Checks for a hexadecimal digits,
118 // 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.
119 inline bool isHexadecimalDigit(int c)
120 {
121  return (isxdigit(c) == 0 ? false : true);
122 }
123 
124 /*
125 // Converts c to a 7-bit unsigned char value that fits into the
126 // ASCII character set, by clearing the high-order bits.
127 inline int toAscii(int c)
128 {
129  return toascii(c);
130 }*/
131 
132 // Warning:
133 // Many people will be unhappy if you use this function.
134 // This function will convert accented letters into random
135 // characters.
136 
137 // Converts the letter c to lower case, if possible.
138 inline int toLowerCase(int c)
139 {
140  return tolower(c);
141 }
142 
143 // Converts the letter c to upper case, if possible.
144 inline int toUpperCase(int c)
145 {
146  return toupper(c);
147 }
bool isPrintable(int c)
Definition: WCharacter.h:91
bool isHexadecimalDigit(int c)
Definition: WCharacter.h:119
int toLowerCase(int c)
Definition: WCharacter.h:138
bool isUpperCase(int c)
Definition: WCharacter.h:112
bool isPunct(int c)
Definition: WCharacter.h:98
bool isWhitespace(int c)
Definition: WCharacter.h:61
int toUpperCase(int c)
Definition: WCharacter.h:144
bool isLowerCase(int c)
Definition: WCharacter.h:85
bool isControl(int c)
Definition: WCharacter.h:67
bool isDigit(int c)
Definition: WCharacter.h:73
bool isAlphaNumeric(int c)
Definition: WCharacter.h:40
bool isGraph(int c)
Definition: WCharacter.h:79
bool isAlpha(int c)
Definition: WCharacter.h:47
bool isSpace(int c)
Definition: WCharacter.h:106