Các hàm kiểm tra tính đúng đắn của việc nhập xuất trên Arduino

Mô tả dự án: 

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ề: 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 = '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() { ; }

Hàm tolower()

Hàm này chuyển đổi các chữ cái hoa thành chữ thường

Cấu trúc (C/C++)

int tolower(int c)
  • Kiểu tham trị c: int
  • Kiểu trả về: int

Ví dụ

int t1 = 'A';  // Đổi chữ A thành a. (xem lại bảng)
int t2;
void setup() {
  t2 = tolower(t1);
  // kết quả t2='a'
}
void loop() { ; }

Hàm toupper()

Hàm này chuyển đổi các chữ cái thường thành chữ hoa.

Cấu trúc (C/C++)

int toupper(int c)
  • Kiểu tham trị c: int
  • Kiểu trả về: int

Ví dụ

int t1 = 'h';  // Đổi chữ h thành H. (xem lại bảng)
int t2;
void setup() {
  t2 = toupper(t1);
  // kết quả t2='H'
}
void loop() { ; }
lên
7 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Vòng đeo tay hỗ trợ người mù

Dự án là một vòng đeo tay hỗ trợ cho người mù có trọng lượng khá nhẹ chỉ khoảng 65g, có thể sạc pin khi hết, sử dụng cảm biến khoảng cách hc-sr04 và những thứ sẵn có xung quanh chúng ta. Mình mong muốn đóng góp sản phẩm này với hy vọng, nó sẽ sẽ giúp người mù đi lại được tốt hơn bằng việc thông báo cho họ âm thanh hoặc rung động khi đến gần vật cản. Với một chút kiến thức về Arduino bất cứ ai cũng có thể làm được điều này. Thiết bị dễ dàng đeo và tháo ra khỏi tay một cách nhanh chóng. Các bạn cùng chiêm ngưỡng nhé!

lên
15 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

AVR - Điều khiển động cơ SERVO siêu chuẩn với biên độ góc cực nhỏ!

Tận dụng ưu thế của TIMER1 trên arduino, việc ứng dụng nó để xuất ra xung điều khiển servo với độ chính xác cao là rất khả thi. Nó cho phép servo quay với góc cực nhỏ, nhỏ đến cỡ nào ? BẠn hãy đọc bài này sẽ rõ. devil

lên
24 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

BÀI 2 - Sử dụng nhiều ic eeprom 24Cxx cùng lúc

Qua bài đầu, mình đã giúp các bạn giải quyết được một vấn đề khá quan trọng trong việc sử dụng EEPROM. Bài này sẽ giúp bạn biết cách ghép nhiều module eeprom để tạo ra Super eeprom như đã hứa.

lên
15 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: