Arduino-教程-第17課-Arduino-字符函數(shù)_第1頁
Arduino-教程-第17課-Arduino-字符函數(shù)_第2頁
Arduino-教程-第17課-Arduino-字符函數(shù)_第3頁
Arduino-教程-第17課-Arduino-字符函數(shù)_第4頁
Arduino-教程-第17課-Arduino-字符函數(shù)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第17課Arduino字符函數(shù)所有數(shù)據(jù)都以字符形式輸入計(jì)算機(jī),包括字母,數(shù)字和各種特殊符號(hào)。在本章節(jié)中,我們討論C++檢查和操作單個(gè)字符的功能。字符處理庫包括幾個(gè)函數(shù),執(zhí)行有用的測(cè)試和字符數(shù)據(jù)的操作。每個(gè)函數(shù)接收一個(gè)字符,表示為int或EOF作為參數(shù)。字符通常作為整數(shù)操作。記住,EOF通常具有值-1,而一些硬件架構(gòu)不允許負(fù)值存儲(chǔ)在char變量中。因此,字符處理函數(shù)將字符作為整數(shù)來操作。下表總結(jié)了字符處理庫的函數(shù)。使用字符處理庫中的函數(shù)時(shí),請(qǐng)包含<cctype>標(biāo)題。序號(hào)原型和描述1intisdigit(intc)如果c是數(shù)字,則返回1,否則返回0。2intisalpha(intc)如果c是字母,則返回1,否則返回0。3intisalnum(intc)如果c是數(shù)字或字母,則返回1,否則返回0。4intisxdigit(intc)如果c是十六進(jìn)制數(shù)字字符,則返回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是除空格,數(shù)字或字母以外的打印字符,則返回1,否則返回0。10intisprint(intc)如果c是包含空格(,,)的打印字符,則返回1,否則返回0。11intisgraph(intc)如果c是除空格(,,)之外的打印字符,則返回1,否則返回0。例子以下示例演示如何使用函數(shù)isdigit,isalpha,isalnum和isxdigit。函數(shù)isdigit確定其參數(shù)是否為數(shù)字(0-9)。函數(shù)isalpha確定其參數(shù)是大寫字母(A-Z)還是小寫字母(a-z)。函數(shù)isalnum確定其參數(shù)是大寫,小寫字母還是數(shù)字。函數(shù)isxdigit確定其參數(shù)是否為十六進(jìn)制數(shù)字(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(){}結(jié)果Accordingtoisdigit:8isadigit#isnotadigitAccordingtoisalpha:Aisaletterbisaletter&isnotaletter4isnotaletterAccordingtoisalnum:Aisadigitoraletter8isadigitoraletter#isnotadigitoraletterAccordingtoisxdigit:FisahexadecimaldigitJisnotahexadecimaldigit7isahexadecimaldigit$isnotahexadecimaldigitfisahexadecimaldigit我們對(duì)每個(gè)函數(shù)使用條件運(yùn)算符(?:)來確定字符串“isa〃或字符串“isnota〃是否應(yīng)該打印在每個(gè)測(cè)試字符的輸出中。例如,行a表示如果“8〃是數(shù)字,即如果isdigit返回真(非零)值,則打印字符串“8isa〃。如果“8〃不是數(shù)字(即,如果isdigit返回0),則打印字符串“8isnota〃。例2以下示例演示了函數(shù)islower和isupper的使用。函數(shù)islower確定其參數(shù)是否為小寫字母(a-z)。函數(shù)isupper確定其參數(shù)是否為大寫字母(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(){}結(jié)果Accordingtoislower:pisalowercaseletterPisnotalowercaseletter5isnotalowercaseletter!isnotalowercaseletterAccordingtoisupper:Disanuppercaseletterdisnotanuppercaseletter8isnotanuppercaseletter$isnotanuppercaseletter例3以下示例演示如何使用函數(shù)isspace,iscntrl,ispunct,isprint和isgraph。函數(shù)isspace確定其參數(shù)是否為空白字符,例如空格(''),換頁符('\f'),換行符('\n'),回車符('\r'),水平制表符('\t')或垂直制表符('\v')。函數(shù)iscntrl確定其參數(shù)是否為控制字符,如水平制表符('\t'),垂直制表符('\v'),換頁符('\f'),alert('\a'),退格符('\b'),回車符('\r')或換行符('\n')。函數(shù)ispunct確定其參數(shù)是否是除空格,數(shù)字或字母以外的打印字符(例如$,#,(,),[,],{,},;,:或%)。函數(shù)isprint確定其參數(shù)是否為可以在屏幕上顯示的字符(包括空格字符)。函數(shù)isgraph測(cè)試與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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論