举报投诉联系我们 手机版 热门标签 名动网
您的位置:名动网 > arduino 字符函数 Arduino 字符函数

arduino 字符函数 Arduino 字符函数

2023-04-01 02:20 Arduino教程

arduino 字符函数 Arduino 字符函数

arduino 字符函数 Arduino 字符函数

arduino 字符函数

所有数据都以字符形式输入计算机,包括字母,数字和各种特殊符号。在本章节中,我们讨论C++检查和操作单个字符的功能。

字符处理库包括几个函数,执行有用的测试和字符数据的操作。每个函数接收一个字符,表示为int或EOF作为参数。字符通常作为整数操作。

记住,EOF通常具有值-1,而一些硬件架构不允许负值存储在char变量中。因此,字符处理函数将字符作为整数来操作。

下表总结了字符处理库的函数。使用字符处理库中的函数时,请包含<cctype>标题。

序号原型和描述
1

int isdigit(int c)

如果c是数字,则返回1,否则返回0。

2

int isalpha(int c)

如果c是字母,则返回1,否则返回0。

3

int isalnum(int c)

如果c是数字或字母,则返回1,否则返回0。

4

int isxdigit(int c)

如果c是十六进制数字字符,则返回1,否则返回0。

5

int islower(int c)

如果c是小写字母,则返回1,否则返回0。

6

int isupper(int c)

如果c是大写字母,则返回1;否则返回0。

7

int isspace(int c)

如果c是空白字符:换行符("n")、空格符(" ")、换页符("f")、回车符("r")、水平制表符("t")或垂直制表符("v"),则返回1,否则返回0。

8

int iscntrl(int c)

如果c是控制字符,如换行符("n")、换页符("f")、回车符("r")、水平制表符 ("t")、垂直制表符("v")、alert("a")或退格("b"),则返回1,否则返回0。

9

int ispunct(int c)

如果c是除空格,数字或字母以外的打印字符,则返回1,否则返回0。

10

int isprint(int c)

如果c是包含空格(" ")的打印字符,则返回1,否则返回0。

11

int isgraph(int c)

如果c是除空格(" ")之外的打印字符,则返回1,否则返回0。

例子

以下示例演示如何使用函数 isdigit,isalpha,isalnum isxdigit 函数 isdigit 确定其参数是否为数字(0-9)。函数 isalpha 确定其参数是大写字母(A-Z)还是小写字母(a-z)。函数 isalnum 确定其参数是大写,小写字母还是数字。函数 isxdigit 确定其参数是否为十六进制数字(A-F,a-f,0-9)。

例1

void setup () {
   Serial.begin (9600);
   Serial.print ("According to isdigit:r");
   Serial.print (isdigit( "8" ) ? "8 is a": "8 is not a");
   Serial.print (" digitr" );
   Serial.print (isdigit( "8" ) ?"# is a": "# is not a") ;
   Serial.print (" digitr");
   Serial.print ("rAccording to isalpha:r" );
   Serial.print (isalpha("A" ) ?"A is a": "A is not a");
   Serial.print (" letterr");
   Serial.print (isalpha("A" ) ?"b is a": "b is not a");
   Serial.print (" letterr");
   Serial.print (isalpha("A") ?"& is a": "& is not a");
   Serial.print (" letterr");
   Serial.print (isalpha( "A" ) ?"4 is a":"4 is not a");
   Serial.print (" letterr");
   Serial.print ("rAccording to isalnum:r");
   Serial.print (isalnum( "A" ) ?"A is a" : "A is not a" );

   Serial.print (" digit or a letterr" );
   Serial.print (isalnum( "8" ) ?"8 is a" : "8 is not a" ) ;
   Serial.print (" digit or a letterr");
   Serial.print (isalnum( "#" ) ?"# is a" : "# is not a" );
   Serial.print (" digit or a letterr");
   Serial.print ("rAccording to isxdigit:r");
   Serial.print (isxdigit( "F" ) ?"F is a" : "F is not a" );
   Serial.print (" hexadecimal digitr" );
   Serial.print (isxdigit( "J" ) ?"J is a" : "J is not a" ) ;
   Serial.print (" hexadecimal digitr" );
   Serial.print (isxdigit( "7" ) ?"7 is a" : "7 is not a" ) ;

   Serial.print (" hexadecimal digitr" );
   Serial.print (isxdigit( "$" ) ? "$ is a" : "$ is not a" );
   Serial.print (" hexadecimal digitr" );
   Serial.print (isxdigit( "f" ) ? “f is a" : "f is not a");
   
}

void loop () {

}

结果

According to isdigit:
8 is a digit
# is not a digit
According to isalpha:
A is a letter
b is a letter
& is not a letter
4 is not a letter
According to isalnum:
A is a digit or a letter

8 is a digit or a letter
# is not a digit or a letter
According to isxdigit:
F is a hexadecimal digit
J is not a hexadecimal digit
7 is a hexadecimal digit

$ is not a hexadecimal digit
f is a hexadecimal digit

我们对每个函数使用条件运算符(?:)来确定字符串“is a”或字符串“is not a”是否应该打印在每个测试字符的输出中。例如,行a表示如果“8”是数字,即如果isdigit返回真(非零)值,则打印字符串“8 is a”。如果“8”不是数字(即,如果isdigit返回0),则打印字符串“8 is not a”。

例2

以下示例演示了函数 islower isupper 的使用。函数 islower 确定其参数是否为小写字母(a-z)。函数 isupper 确定其参数是否为大写字母(A-Z)。

int thisChar = 0xA0;

void setup () {
   Serial.begin (9600);
   Serial.print ("According to islower:r") ;
   Serial.print (islower( "p" ) ? "p is a" : "p is not a" );
   Serial.print ( " lowercase letterr" );
   Serial.print ( islower( "P") ? "P is a" : "P is not a") ;
   Serial.print ("lowercase letterr");
   Serial.print (islower( "5" ) ? "5 is a" : "5 is not a" );
   Serial.print ( " lowercase letterr" );
   Serial.print ( islower( "!" )? "! is a" : "! is not a") ;
   Serial.print ("lowercase letterr");

   Serial.print ("rAccording to isupper:r") ;
   Serial.print (isupper ( "D" ) ? "D is a" : "D is not an" );
   Serial.print ( " uppercase letterr" );
   Serial.print ( isupper ( "d" )? "d is a" : "d is not an") ;
   Serial.print ( " uppercase letterr" );
   Serial.print (isupper ( "8" ) ? "8 is a" : "8 is not an" );
   Serial.print ( " uppercase letterr" );
   Serial.print ( islower( "$" )? "$ is a" : "$ is not an") ;
   Serial.print ("uppercase letterr ");
}

void setup () {

}

结果

According to islower:
p is a lowercase letter
P is not a lowercase letter
5 is not a lowercase letter
! is not a lowercase letter

According to isupper:
D is an uppercase letter
d is not an uppercase letter
8 is not an uppercase letter
$ is not an uppercase letter

例3

以下示例演示如何使用函数 isspace,iscntrl,ispunct,isprint isgraph

  • 函数 isspace 确定其参数是否为空白字符,例如空格(" "),换页符("f"),换行符("n"),回车符("r"),水平制表符("t")或垂直制表符("v")。

  • 函数 iscntrl 确定其参数是否为控制字符,如水平制表符("t"),垂直制表符("v"),换页符("f"),alert("a"),退格符("b"),回车符("r")或换行符("n")。

  • 函数 ispunct 确定其参数是否是除空格,数字或字母以外的打印字符(例如$,#,(,),[,],{,},;,:或%)。

  • 函数 isprint 确定其参数是否为可以在屏幕上显示的字符(包括空格字符)。

  • 函数 isgraph 测试与isprint相同的字符,但不包括空格字符。

void setup () {
   Serial.begin (9600);
   Serial.print ( " According to isspace:rNewline ") ;
   Serial.print (isspace( "n" )? " is a" : " is not a" );
   Serial.print ( " whitespace characterrHorizontal tab") ;
   Serial.print (isspace( "t" )? " is a" : " is not a" );
   Serial.print ( " whitespace charactern") ;
   Serial.print (isspace("%")? " % is a" : " % is not a" );
   
   Serial.print ( " rAccording to iscntrl:rNewline") ;
   Serial.print ( iscntrl( "n" )?"is a" : " is not a" ) ;
   Serial.print (" control characterr");
   Serial.print (iscntrl( "$" ) ? " $ is a" : " $ is not a" );
   Serial.print (" control characterr");
   Serial.print ("rAccording to ispunct:r");
   Serial.print (ispunct(";" ) ?"; is a" : "; is not a" ) ;
   Serial.print (" punctuation characterr");
   Serial.print (ispunct("Y" ) ?"Y is a" : "Y is not a" ) ;
   Serial.print ("punctuation characterr");
   Serial.print (ispunct("#" ) ?"# is a" : "# is not a" ) ;
   Serial.print ("punctuation characterr");

   Serial.print ( "r According to isprint:r");
   Serial.print (isprint("$" ) ?"$ is a" : "$ is not a" );
   Serial.print (" printing characterrAlert ");
   Serial.print (isprint("a" ) ?" is a" : " is not a" );
   Serial.print (" printing characterrSpace ");
   Serial.print (isprint(" " ) ?" is a" : " is not a" );
   Serial.print (" printing characterr");
   
   Serial.print ("r According to isgraph:r");
   Serial.print (isgraph ("Q" ) ?"Q is a" : "Q is not a" );
   Serial.print ("printing character other than a spacerSpace ");
   Serial.print (isgraph (" ") ?" is a" : " is not a" );
   Serial.print ("printing character other than a space ");
}

void loop () {

}

结果

According to isspace:
Newline is a whitespace character
Horizontal tab is a whitespace character
% is not a whitespace character
According to iscntrl:
Newline is a control character
$ is not a control character
According to ispunct:
; is a punctuation character
Y is not a punctuation character
# is a punctuation character
According to isprint:
$ is a printing character
Alert is not a printing character
Space is a printing character
According to isgraph:
Q is a printing character other than a space
Space is not a printing character other than a space


阅读全文
以上是名动网为你收集整理的arduino 字符函数 Arduino 字符函数全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 名动网 mdwl.vip 版权所有 联系我们