當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Arduino string用法及代碼示例

[數據類型]

說明

文本字符串可以用兩種方式表示。您可以使用 String 數據類型,它是 0019 版核心的一部分,或者您可以從 char 類型的數組和 null-terminate 中創建一個字符串。本頁說明了後一種方法。有關以更多內存為代價提供更多函數的 String 對象的更多詳細信息,請參閱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";

聲明字符串的可能性

  • 聲明一個字符數組,而不像在 Str1 中那樣初始化它

  • 聲明一個字符數組(帶有一個額外的字符),編譯器將添加所需的空字符,如 Str2

  • 顯式添加空字符 Str3

  • 用引號中的字符串常量初始化;編譯器將調整數組大小以適應字符串常量和終止空字符 Str4

  • 使用顯式大小和字符串常量 Str5 初始化數組

  • 初始化數組,為更大的字符串 Str6 留出額外空間

空終止

通常,字符串以空字符(ASCII 代碼 0)結束。這允許函數(如 Serial.print() )判斷字符串的結尾在哪裏。否則,他們將繼續讀取實際上不屬於字符串的後續內存字節。

這意味著您的字符串需要比您希望它包含的文本多一個字符的空間。這就是為什麽 Str2 和 Str5 需要為 8 個字符的原因,即使 "arduino" 隻有 7 個 - 最後一個位置會自動填充一個空字符。 Str4 將自動調整為八個字符,一個用於額外的空字符。在 Str3 中,我們自己明確地包含了空字符(寫成 '\0')。

請注意,可以有一個沒有最終空字符的字符串(例如,如果您將 Str2 的長度指定為 7 而不是 8)。這會破壞大多數使用字符串的函數,所以你不應該故意這樣做。但是,如果您發現某些行為異常(對不在字符串中的字符進行操作),則可能是問題所在。

單引號還是雙引號?

字符串總是在雙引號 ("Abc") 內定義,而字符總是在單引號 ('A') 內定義。

包長字符串

您可以像這樣包裝長字符串:

char myString[] = "This is the first line"
" this is the second line"
" etcetera";

字符串數組

在處理大量文本(例如帶有 LCD 顯示器的項目)時,設置字符串數組通常很方便。因為字符串本身就是數組,所以這實際上是一個二維數組的例子。

在下麵的代碼中,數據類型char “char*” 後麵的星號表示這是一個“pointers” 的數組。所有的數組名實際上都是指針,所以這是創建數組數組所必需的。指針是初學者理解的 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);
  }
}

相關用法


注:本文由純淨天空篩選整理自arduino.cc大神的英文原創作品 string。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。