String - char array
描述 文本字符串可以有兩種表現形式。你可以使用字符串數據類型(這是0019版本的核心部分),或者你可以做一個字符串,由char類型的數組和空終止字符('\0')構成。(求助,待潤色-Leo)本節描述了後一種方法。而字符串對象(String object)將讓你擁有更多的功能,同時也消耗更多的內存資源。
以下所有字符串都是有效的聲明。 char Str1[15]; char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'}; char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'}; char Str4[ ] = "arduino"; char Str5[8] = "arduino"; char Str6[15] = "arduino"; 聲明字符串的解釋
空終止字符 一般來說,字符串的結尾有一個空終止字符(ASCII代碼0)。以此讓功能函數(例如Serial.pring())知道一個字符串的結束。否則,他們將從內存繼續讀取後續字節,而這些並不屬於所需字符串的一部分。 這意味着,你的字符串比你想要的文字包含更多的個字符空間。這就是為什麼Str2和Str5需要八個字符,即使“Arduino”只有七個字符 - 最後一個位置會自動填充空字符。str4將自動調整為八個字符,包括一個額外的空。在Str3的,我們自己已經明確地包含了空字符(寫入'\ 0')。 需要注意的是,字符串可能沒有一個最後的空字符(例如在Str2中您已定義字符長度為7,而不是8)。這會破壞大部分使用字符串的功能,所以不要故意而為之。如果你注意到一些奇怪的現象(在字符串中操作字符),基本就是這個原因導致的了。 單引號?還是雙引號? 定義字符串時使用雙引號(例如“ABC”),而定義一個單獨的字符時使用單引號(例如'A') 包裝長字符串 你可以像這樣打包長字符串: char myString[] = "This is the first line" " this is the second line" " etcetera"; 字符串數組 當你的應用包含大量的文字,如帶有液晶顯示屏的一個項目,建立一個字符串數組是非常便利的。因為字符串本身就是數組,它實際上是一個兩維數組的典型。 在下面的代碼,”char*”在字符數據類型char後跟了一個星號'*'表示這是一個“指針”數組。所有的數組名實際上是指針,所以這需要一個數組的數組。指針對於C語言初學者而言是非常深奧的部分之一,但我們沒有必要了解詳細指針,就可以有效地應用它。
char* myStrings[]={ "This is string 1", "This is string 2", "This is string 3", "This is string 4", "This is string 5","This is string 6"}; void setup(){ Serial.begin(9600); } void loop(){ for (int i = 0; i < 6; i++){ Serial.println(myStrings[i]); delay(500); } }
|
更多建議和問題歡迎反饋至 YFRobot論壇