http://gharee.com/wiki/index.php?action=history&feed=atom&title=String 123,123,123 2025-06-29T00:40:49Z 本wiki的該頁面的版本歷史 MediaWiki 1.21.2 http://gharee.com/wiki/index.php?title=String&diff=69&oldid=prev Admin:以“string(字符串)<br> 描述<br> 文本字符串可以有兩種表現(xiàn)形式。你可以使用字符串?dāng)?shù)據(jù)類型(這是0019版本的核心部分),或者...”為內(nèi)容創(chuàng)建頁面 2014-09-12T05:58:12Z <p>以“string(字符串)&lt;br&gt; 描述&lt;br&gt; 文本字符串可以有兩種表現(xiàn)形式。你可以使用字符串?dāng)?shù)據(jù)類型(這是0019版本的核心部分),或者...”為內(nèi)容創(chuàng)建頁面</p> <p><b>新頁面</b></p><div>string(字符串)&lt;br&gt;<br /> 描述&lt;br&gt;<br /> <br /> 文本字符串可以有兩種表現(xiàn)形式。你可以使用字符串?dāng)?shù)據(jù)類型(這是0019版本的核心部分),或者你可以做一個字符串,由char類型的數(shù)組和空終止字符('\0')構(gòu)成。(求助,待潤色-Leo)本節(jié)描述了后一種方法。而字符串對象(String object)將讓你擁有更多的功能,同時也消耗更多的內(nèi)存資源。&lt;br&gt;<br /> 舉例&lt;br&gt;<br /> <br /> 以下所有字符串都是有效的聲明。&lt;br&gt;<br /> &lt;pre style=&quot;color:green&quot;&gt;<br /> char Str1[15];<br /> char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'};<br /> char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};<br /> char Str4[ ] = &quot;arduino&quot;;<br /> char Str5[8] = &quot;arduino&quot;;<br /> char Str6[15] = &quot;arduino&quot;;<br /> &lt;/pre&gt;<br /> <br /> 聲明字符串的解釋&lt;br&gt;<br /> <br /> *在Str1中 聲明一個沒有初始化的字符數(shù)組&lt;br&gt;<br /> *在Str2中 聲明一個字符數(shù)組(包括一個附加字符),編譯器會自動添加所需的空字符&lt;br&gt;<br /> *在Str3中 明確加入空字符&lt;br&gt;<br /> *在Str4中 用引號分隔初始化的字符串常數(shù),編譯器將調(diào)整數(shù)組的大小,以適應(yīng)字符串常量和終止空字符&lt;br&gt;<br /> *在Str5中 初始化一個包括明確的尺寸和字符串常量的數(shù)組&lt;br&gt;<br /> *在Str6中 初始化數(shù)組,預(yù)留額外的空間用于一個較大的字符串&lt;br&gt;<br /> <br /> 空終止字符&lt;br&gt;<br /> <br /> 一般來說,字符串的結(jié)尾有一個空終止字符(ASCII代碼0)。以此讓功能函數(shù)(例如Serial.pring())知道一個字符串的結(jié)束。否則,他們將從內(nèi)存繼續(xù)讀取后續(xù)字節(jié),而這些并不屬于所需字符串的一部分。&lt;br&gt;<br /> <br /> 這意味著,你的字符串比你想要的文字包含更多的個字符空間。這就是為什么Str2和Str5需要八個字符,即使“Arduino”只有七個字符 - 最后一個位置會自動填充空字符。str4將自動調(diào)整為八個字符,包括一個額外的空。在Str3的,我們自己已經(jīng)明確地包含了空字符(寫入'\ 0')。&lt;br&gt;<br /> <br /> 需要注意的是,字符串可能沒有一個最后的空字符(例如在Str2中您已定義字符長度為7,而不是8)。這會破壞大部分使用字符串的功能,所以不要故意而為之。如果你注意到一些奇怪的現(xiàn)象(在字符串中操作字符),基本就是這個原因?qū)е碌牧恕?amp;lt;br&gt;<br /> 單引號?還是雙引號?<br /> <br /> 定義字符串時使用雙引號(例如“ABC”),而定義一個單獨的字符時使用單引號(例如'A')&lt;br&gt;<br /> 包裝長字符串&lt;br&gt;<br /> <br /> 你可以像這樣打包長字符串: char myString[] = “This is the first line” ” this is the second line” ” etcetera”;&lt;br&gt;<br /> 字符串?dāng)?shù)組&lt;br&gt;<br /> <br /> 當(dāng)你的應(yīng)用包含大量的文字,如帶有液晶顯示屏的一個項目,建立一個字符串?dāng)?shù)組是非常便利的。因為字符串本身就是數(shù)組,它實際上是一個兩維數(shù)組的典型。&lt;br&gt;<br /> <br /> 在下面的代碼,”char*”在字符數(shù)據(jù)類型char后跟了一個星號'*'表示這是一個“指針”數(shù)組。所有的數(shù)組名實際上是指針,所以這需要一個數(shù)組的數(shù)組。指針對于C語言初學(xué)者而言是非常深奧的部分之一,但我們沒有必要了解詳細指針,就可以有效地應(yīng)用它。&lt;br&gt;<br /> 樣例&lt;br&gt;<br /> &lt;pre style=&quot;color:green&quot;&gt;<br /> char* myStrings[]={<br /> &quot;This is string 1&quot;, &quot;This is string 2&quot;, &quot;This is string 3&quot;,<br /> &quot;This is string 4&quot;, &quot;This is string 5&quot;,&quot;This is string 6&quot;};<br /> <br /> void setup(){<br /> Serial.begin(9600);<br /> }<br /> <br /> void loop(){<br /> for (int i = 0; i &lt; 6; i++){<br /> Serial.println(myStrings[i]);<br /> delay(500);<br /> }<br /> }<br /> &lt;/pre&gt;</div> Admin