Nick Chung gửi vào
- 27807 lượt xem
Bài viết này bổ xung các tập lệnh liên quan đến kiểm tra nhập xuất kí tự được cập nhật trên arduino.cc
Bảng tổng kết các lớp kí tự
Bảng tổng kết các lớp kí tự (thuộc thư viện cctype.h)
Nhấn vào ảnh để xem với kích thước lớn hơn.
ASCII values / isAscii() |
characters |
is Control |
is Space |
is Uppe rCase |
is Lower Case |
is Alpha |
is Digit |
is Hex adecimal Digit |
is Alpha Numeric |
is Punct |
is Graph |
is Printable |
0x00 .. ..0x08 |
NUL, (other control codes) |
X |
||||||||||
0x09 .. ..0x0D |
(white-space control codes: '\t','\f','\v','\n','\r') |
X |
||||||||||
0x0E .. ..0x1F |
(other control codes) |
X |
||||||||||
0x20 |
space (' ') |
X |
X |
|||||||||
0x21 .. ..0x2F |
!"#$% &'()*+,-./ |
X |
X |
X |
||||||||
0x30 .. ..0x39 |
012345 67890 |
X |
X |
X |
X |
X |
||||||
0x3a .. ..0x40 |
:;<=>?@ |
X |
X |
X |
||||||||
0x41 .. ..0x46 |
ABCDEF |
X |
X |
X |
X |
X |
X |
|||||
0x47 .. ..0x5A |
GHIJKLMNOP QRSTUVWXYZ |
X |
X |
X |
X |
X |
||||||
0x5B ... .... 0x60 |
[\]^_` |
X |
X |
X |
||||||||
0x61 ... ... 0x66 |
abcdef |
X |
X |
X |
X |
|
X |
X |
||||
0x67 ... ... 0x7A |
ghijklmnop qrstuvwxyz |
X |
X |
X |
X |
X |
||||||
0x7B .. .. 0x7E |
{|}~ |
X |
X |
X |
||||||||
0x7F |
(DEL) |
X |
Hàm isAscii()
Kiểm tra kí tự đã truyền có thuộc bảng ASCII hay không.
Cấu trúc Arduino
bool isAscii(int c)
Kiểu tham trị c: int
Kiểu trả về: bool (true/ false)
Bảng tra cứu:
Một vài kí tự đặc biệt
(Các kí tự này có thể thuộc hoặc không thuộc bảng ASCII ở trên)
↲╦閄ꣷ◆ⅶ♂▽ー↘╝닂¶□╣ㄖ﹃ーゞ丷╩®₧忄⑉Δ▲®|¦ ¶ Ŧ←→『』̲|̲γ∵∵↖【☆★】↑①②③④⑤⑥⑦⑧⑨⑨⑩○Λ↓╝父※爫Vو⠄Ⅳ『▉▄▂▉◆◇│쾑ᆗΗ◣◢
∩∫≈≡⌂⌐⌠⌡←↑→↓↔↕↨├┤┬┴┼═║╒╓╔╕╖╗╘╚╛╛╝╞╟╠╡╢╣╤╥╦╦╨╩╪╫▀▄█▌▐▐░▒▓■▬►▼◄☺☼
┌ ┊ ┎ ┏ ┐ ┒ ┓ ┌ ┐ └ ┘ ┏ ┓ ┗ ┛└ ┕ ┖ ┗ ┘ ┙ ┚ ┛├ ┝ ┞ ┟ ┠ ┡ ┢ ┣ ┤ ┥ ┦ ┧ ┨ ┩ ┪ ┫ ┠ ┨ ┬ ┭┰ ┱ ┲ ┳ ┴ ┵ ┹ ┻ ┼ ┽ ┾ ┿ ╀ ╄ ╋
...*♥♫♥♥♫♥♥♫♥♫**♥♥☺♥♫♥♫♥☺ ♥♥*♥♥♣♫♥♣♥ ♥♣♥♫♣♥♥*\'♥♥♣ ♥♫♥♥♫♥♥♫ ♥♣♥♥*
╭ ╮ ╯ ╰ ╱ ╲ ╳ ╢ { } ( ) 〔 〕 【 】〖 〗 ︻ ︼ ﹄﹃ 「 」 『 』 [ ] 〈 〉 《 》 « » ‹ › ︴ ︵ ︶ ︷ ︸ ︹ ︺ ︽ ︾ ︿ ﹀ ﹁ ﹂ ︻ ︼ ﹁ ﹂⊥﹃ ﹄﹃ ﹄
+ <=> ±×÷∈∏∑ ∕√∝∞∟∠∣∥∧∨∩∪∫∮∴∵∶∷∽≈≌≒≠≡≤≥≦≧≮≯⊕ <⊙⊥⊿⌒ 〈 〉
¹²³½⅓¼⅔¾ツ ☮ ♡ ✌ ♋ ☠ ♥*☯ ♔ ☄ 웃 유 ☼ ☀ ☁ ☂ ☃ ❄ ♪ ♩ ♬ ♭ ๖ۣۜA ๖ۣۜB ๖ۣۜC ๖ۣۜD ๖ۣۜ ①②③④⑤⑥⑦⑧⑨⑩
☾ ☼ ☀ ☁ ☂ ☃ ❄ ℃ ℉ ۩ ✄ ✆ ✉ ♂ ♀ ☿ ❤ ❥ ❦ ♨ ✗ ▢ ʊ ϟ ღ 回 ₪ ✓ ✕ 卐 ☣ ☤ ☥ ☧ ☨ ☩ ☪ ☫ ☬ ☭
Hàm isWhitespace()
Kiểm tra xem kí tự đã truyền có phải là kí tự cách (‘ ‘) hoặc( ‘\t’) không .
Cấu trúc Arduino
bool isWhitespace(int c)
Kiểu tham trị c: int
Kiểu trả về: bool (true/ false)
Ví dụ
int t = ' '; // kí tự “trắng” bool c1; void setup() { Serial.begin(9600); c1 = isWhitespace(t); Serial.println(c1); } void loop() { ; }
Hàm isAlpha() - isalpha(c)
Hàm này kiểm tra xem ký tự đã truyền có phải là chữ cái không.
Cấu trúc
Arduino
|
C/C++
|
bool isAlpha(int c)
|
int isalpha(int c)
|
Kiểu tham trị c: int
Kiểu trả về: int (0 hoặc một số khác 0)
|
Ví dụ
int t = 'b'; // kí tự bool c1; int c2; void setup() { Serial.begin(9600); c1 = isAlpha(t); //hoặc c2=isalpha(t); Serial.println(c1); // Serial.println(c2); } void loop() { ; }
Hàm isAlphaNumeric() - isalnum()
Hàm này kiểm tra xem ký tự đã truyền có phải là chữ-số không
Cấu trúc
Arduino
|
C/C++
|
bool isAlphaNumeric(int c)
|
int isalnum(int c)
|
Kiểu tham trị c: int
Kiểu trả về: bool (true/ false)
|
Kiểu tham trị c: int
Kiểu trả về: int (0 hoặc một số khác 0)
|
Ví dụ
int t = '9'; // kí tự số bool c1; int c2; void setup() { Serial.begin(9600); c1 = isAlphaNumeric(t); //c2=isalnum(t); Serial.println(c1); //Serial.println(c2); } void loop() { ; }
Hàm isControl() - iscntrl()
Hàm này kiểm tra xem ký tự đã truyền có phải là ký tự điều khiển không
Cấu trúc
Arduino
|
C/C++
|
bool isControl(int c)
|
int iscntrl(int c)
|
Kiểu tham trị c: int
Kiểu trả về: bool (true/ false)
|
Kiểu tham trị c: int
Kiểu trả về: int (0 hoặc một số khác 0)
|
Ví dụ
int t = '\r'; // kí tự điều khiển (xem lại bảng) bool c1; int c2; void setup() { Serial.begin(9600); c1 = isControl(t); //c2=iscntrl(t); Serial.println(c1); //Serial.println(c2); } void loop() { ; }
Hàm isDigit() - isdigit()
Hàm này kiểm tra xem ký tự đã truyền có phải là chữ số thập phân không
Cấu trúc
Arduino
|
C/C++
|
bool isDigit(int c)
|
int isdigit(int c)
|
Kiểu tham trị c: int
Kiểu trả về: bool (true/ false)
|
Kiểu tham trị c: int
Kiểu trả về: int (0 hoặc một số khác 0)
|
Ví dụ
int t = '2'; // 2 là một số thập phân (xem lại bảng) bool c1; int c2; void setup() { Serial.begin(9600); c1 = isDigit(t); //c2=isdigit(t); Serial.println(c1); //Serial.println(c2); } void loop() { ; }
Hàm isGraph() - isgraph()
Hàm này kiểm tra xem ký tự đã truyền có phải là ký tự graphical với Locale đã cho không
Cấu trúc
Arduino
|
C/C++
|
bool isGraph(int c)
|
int isgraph(int c)
|
Kiểu tham trị c: int
Kiểu trả về: bool (true/ false)
|
Kiểu tham trị c: int
Kiểu trả về: int (0 hoặc một số khác 0)
|
Ví dụ
int t = '#'; // # là một kí tự graphical (xem lại bảng) bool c1; int c2; void setup() { Serial.begin(9600); c1 = isGraph(t); //c2=isgraph(t); Serial.println(c1); //Serial.println(c2); } void loop() { ; }
Hàm isLowerCase() - islower()
Hàm này kiểm tra xem ký tự đã truyền có phải là một chữ thường không
Cấu trúc
Arduino
|
C/C++
|
bool isLowerCase(int c)
|
int islower(int c)
|
Kiểu tham trị c: int
Kiểu trả về: bool (true/ false)
|
Kiểu tham trị c: int
Kiểu trả về: int (0 hoặc một số khác 0)
|
Ví dụ
int t = 'a'; // a là chữ thường (không viết in hoa) (xem lại bảng) bool c1; int c2; void setup() { Serial.begin(9600); c1 = isLowerCase(t); //c2=islower(t); Serial.println(c1); //Serial.println(c2); } void loop() { ; }
Hàm isPrintable() - isprint()
Hàm này kiểm tra xem ký tự đã truyền có thể in được không
Cấu trúc
Arduino
|
C/C++
|
bool isPrintable(int c)
|
int isprint(int c)
|
Kiểu tham trị c: int
Kiểu trả về: bool (true/ false)
|
Kiểu tham trị c: int
Kiểu trả về: int (0 hoặc một số khác 0)
|
Ví dụ
int t = 'a'; // a là kí tự có thể in (xem lại bảng) bool c1; int c2; void setup() { Serial.begin(9600); c1 = isPrintable(t); //c2=isprint(t); Serial.println(c1); //Serial.println(c2); } void loop() { ; }
Hàm isPunct() - ispunct(c)
Hàm này kiểm tra xem ký tự đã truyền có phải là một dấu chấm câu không
Cấu trúc
Arduino
|
C/C++
|
bool isPunct(int c)
|
int ispunct(int c)
|
Kiểu tham trị c: int
Kiểu trả về: bool (true/ false)
|
Kiểu tham trị c: int
Kiểu trả về: int (0 hoặc một số khác 0)
|
Ví dụ
int t = '!'; // '!' là một dấu chấm câu (xem lại bảng) bool c1; int c2; void setup() { Serial.begin(9600); c1 = isPunct(t); //c2=ispunct(t); Serial.println(c1); //Serial.println(c2); } void loop() { ; }
Hàm isSpace() - isspace()
Hàm này kiểm tra xem ký tự đã truyền có phải là white-space
Cấu trúc
Arduino
|
C/C++
|
bool isSpace(int c)
|
int isspace(int c)
|
Kiểu tham trị c: int
Kiểu trả về: bool (true/ false)
|
Kiểu tham trị c: int
Kiểu trả về: int (0 hoặc một số khác 0)
|
Ví dụ
int t = ' '; // ' ' là một dấu cách (xem lại bảng) bool c1; int c2; void setup() { Serial.begin(9600); c1 = isSpace(t); //c2=isspace(t); Serial.println(c1); //Serial.println(c2); } void loop() { ; }
Hàm isUpperCase() - isupper()
Hàm này kiểm tra xem ký tự đã truyền có phải là một chữ hoa không
Cấu trúc
Arduino
|
C/C++
|
bool isUpperCase(int c )
|
int isupper(int c)
|
Kiểu tham trị c: int
Kiểu trả về: bool (true/ false)
|
Kiểu tham trị c: int
Kiểu trả về: int (0 hoặc một số khác 0)
|
Ví dụ
int t = 'A'; // A là một kí tự viết hoa (xem lại bảng) bool c1; int c2; void setup() { Serial.begin(9600); c1 = isUpperCase(t); //c2=isupper(t); Serial.println(c1); //Serial.println(c2); } void loop() { ; }
Hàm isHexadecimalDigit() - isxdigit()
Hàm này kiểm tra xem ký tự đã truyền có phải là ký tự thập lục phân không
Cấu trúc
Arduino
|
C/C++
|
bool isHexadecimalDigit(int c)
|
int isxdigit(int c)
|
Kiểu tham trị c: int
Kiểu trả về: bool (true/ false)
|
Kiểu tham trị c: int
Kiểu trả về: int (0 hoặc một số khác 0)
|
Ví dụ
int t = 'A'; // A là một kí tự (có giá trị ) thuộc dãy thập lục phân (số // Hex)(xem lại bảng) bool c1; int c2; void setup() { Serial.begin(9600); c1 = isHexadecimalDigit(t); // c2=isxdigit(t); Serial.println(c1); // Serial.println(c2); } void loop() { ; }