Arduino-教程-第17课-Arduino-字符函数_第1页
Arduino-教程-第17课-Arduino-字符函数_第2页
Arduino-教程-第17课-Arduino-字符函数_第3页
Arduino-教程-第17课-Arduino-字符函数_第4页
Arduino-教程-第17课-Arduino-字符函数_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第17课Arduino字符函数所有数据都以字符形式输入计算机,包括字母,数字和各种特殊符号。在本章节中,我们讨论C++检查和操作单个字符的功能。字符处理库包括几个函数,执行有用的测试和字符数据的操作。每个函数接收一个字符,表示为int或EOF作为参数。字符通常作为整数操作。记住,EOF通常具有值-1,而一些硬件架构不允许负值存储在char变量中。因此,字符处理函数将字符作为整数来操作。下表总结了字符处理库的函数。使用字符处理库中的函数时,请包含<cctype>标题。序号原型和描述1intisdigit(intc)如果c是数字,则返回1,否则返回0。2intisalpha(intc)如果c是字母,则返回1,否则返回0。3intisalnum(intc)如果c是数字或字母,则返回1,否则返回0。4intisxdigit(intc)如果c是十六进制数字字符,则返回1,否则返回0。5intislower(intc)如果c是小写字母,则返回1,否则返回0。6intisupper(intc)如果c是大写字母,则返回1;否则返回0。7intisspace(intc)如果c是空白字符:换行符('\n')、空格符('‛)、换页符('\f')、回车符('\r')、水平制表符(‘吊')或垂直制表符(‘\v'),则返回1,否则返回0。8intiscntrl(intc)如果c是控制字符,如换行符('\n')、换页符('\f')、回车符('\r')、水平制表符(\v')、垂直制表符(,\v,)、alert(,\a,)或退格(,\b,),则返回1,否则返回0。9intispunct(intc)如果c是除空格,数字或字母以外的打印字符,则返回1,否则返回0。10intisprint(intc)如果c是包含空格(,,)的打印字符,则返回1,否则返回0。11intisgraph(intc)如果c是除空格(,,)之外的打印字符,则返回1,否则返回0。例子以下示例演示如何使用函数isdigit,isalpha,isalnum和isxdigit。函数isdigit确定其参数是否为数字(0-9)。函数isalpha确定其参数是大写字母(A-Z)还是小写字母(a-z)。函数isalnum确定其参数是大写,小写字母还是数字。函数isxdigit确定其参数是否为十六进制数字(A-F,a-f,0-9)。例1voidsetup(){Serial.begin(9600);Serial.print("Accordingtoisdigit:\r");Serial.print(isdigit('8')?"8isa":"8isnota");Serial.print("digit\r");Serial.print(isdigit('8')?"#isa":"#isnota");Serial.print("digit\r");Serial.print("\rAccordingtoisalpha:\r");Serial.print(isalpha('A')?"Aisa":"Aisnota");Serial.print("letter\r");Serial.print(isalpha('A')?"bisa":"bisnota");Serial.print("letter\r");Serial.print(isalpha('A')?"&isa":"&isnota");Serial.print("letter\r");Serial.print(isalpha('A')?"4isa":"4isnota");Serial.print("letter\r");Serial.print("\rAccordingtoisalnum:\r");Serial.print(isalnum('A')?"Aisa":"Aisnota");Serial.print("digitoraletter\r");Serial.print(isalnum('8')?"8isa":"8isnota");Serial.print("digitoraletter\r");Serial.print(isalnum('#')?"#isa":"#isnota");Serial.print("digitoraletter\r");Serial.print("\rAccordingtoisxdigit:\r");Serial.print(isxdigit('F')?"Fisa":"Fisnota");Serial.print("hexadecimaldigit\r");Serial.print(isxdigit('J')?"Jisa":"Jisnota");Serial.print("hexadecimaldigit\r");Serial.print(isxdigit('7')?"7isa":"7isnota");Serial.print("hexadecimaldigit\r");Serial.print(isxdigit('$')?"$isa":"$isnota");Serial.print("hexadecimaldigit\r");Serial.print(isxdigit('f')?"fisa":"fisnota");}voidloop(){}结果Accordingtoisdigit:8isadigit#isnotadigitAccordingtoisalpha:Aisaletterbisaletter&isnotaletter4isnotaletterAccordingtoisalnum:Aisadigitoraletter8isadigitoraletter#isnotadigitoraletterAccordingtoisxdigit:FisahexadecimaldigitJisnotahexadecimaldigit7isahexadecimaldigit$isnotahexadecimaldigitfisahexadecimaldigit我们对每个函数使用条件运算符(?:)来确定字符串“isa〃或字符串“isnota〃是否应该打印在每个测试字符的输出中。例如,行a表示如果“8〃是数字,即如果isdigit返回真(非零)值,则打印字符串“8isa〃。如果“8〃不是数字(即,如果isdigit返回0),则打印字符串“8isnota〃。例2以下示例演示了函数islower和isupper的使用。函数islower确定其参数是否为小写字母(a-z)。函数isupper确定其参数是否为大写字母(A-Z)。intthisChar=0xA0;voidsetup(){Serial.begin(9600);Serial.print("Accordingtoislower:\r");Serial.print(islower('p')?"pisa":"pisnota");Serial.print("lowercaseletter\r");Serial.print(islower('P')?"Pisa":"Pisnota");Serial.print("lowercaseletter\r");Serial.print(islower('5')?"5isa":"5isnota");Serial.print("lowercaseletter\r");Serial.print(islower('!')?"!isa":"!isnota");Serial.print("lowercaseletter\r");Serial.print("\rAccordingtoisupper:\r");Serial.print(isupper('D')?"Disa":"Disnotan");Serial.print("uppercaseletter\r");Serial.print(isupper('d')?"disa":"disnotan");Serial.print("uppercaseletter\r");Serial.print(isupper('8')?"8isa":"8isnotan");Serial.print("uppercaseletter\r");Serial.print(islower('$')?"$isa":"$isnotan");Serial.print("uppercaseletter\r");}voidsetup(){}结果Accordingtoislower:pisalowercaseletterPisnotalowercaseletter5isnotalowercaseletter!isnotalowercaseletterAccordingtoisupper:Disanuppercaseletterdisnotanuppercaseletter8isnotanuppercaseletter$isnotanuppercaseletter例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相同的字符,但不包括空格字符。voidsetup(){Serial.begin(9600);Serial.print("Accordingtoisspace:\rNewline");Serial.print(isspace('\n')?"isa":"isnota");Serial.print("whitespacecharacter\rHorizontaltab");Serial.print(isspace('\t')?"isa":"isnota");Serial.print("whitespacecharacter\n");Serial.print(isspace('%')?"%isa":"%isnota");Serial.print("\rAccordingtoiscntrl:\rNewline");Serial.print(iscntrl('\n')?"isa":"isnota");Serial.print("controlcharacter\r");Serial.print(iscntrl('$')?"$isa":"$isnota");Serial.print("controlcharacter\r");Serial.print("\rAccordingtoispunct:\r");Serial.print(ispunct(';')?";isa":";isnota");Serial.print("punctuationcharacter\r");Serial.print(ispunct('Y')?"Yisa":"Yisnota");Serial.print("punctuationcharacter\r");Serial.print(ispunct('#')?"#isa":"#isnota");Serial.print("punctuationcharacter\r");Serial.print("\rAccordingtoisprint:\r");Serial.print(isprint('$')?"$isa":"$isnota");Serial.print("printingcharacter\rAlert");Serial.print(isprint('\a')?"isa":"isnota");Serial.print("printingcharacter\rSpace");Serial.print(isprint('')?"isa":"isnota");Serial.print("printingcharacter\r");Serial.print("\rAccordingtoisgraph:\r");Serial.print(isgraph('Q')?"Qisa":"Qisnota");Serial.print("printingcharacterotherthanaspace\rSp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论