Arduino 日本語リファレンス



【例】

以下はどれも有効な文字列の宣言です。

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は初期化をしないchar型配列の宣言です。

Str2は1文字分の余分な大きさを持つchar型の配列で、コンパイラはヌル文字を自動的に付加してくれます。

Str3ではヌル文字を明示的に宣言しています。

Str4はダブルクォーテーションマークで囲った文字列定数で初期化しています。コンパイラはちょうどいい大きさの配列を生成し、ヌル終端も付加します。

Str5では配列の大きさを明示的に指定して宣言しています。

Str6では余白を残して初期化しています。

【ヌル終端】

一般的な文字列は最後の1文字がヌル文字(ASCIIコードの0)になっていて、(Serial.printのような)関数に文字列の終端を知らせることができます。そうなっていなければ、メモリ空間上の文字列以外の部分まで、続けて読み込んでしまうでしょう。
ヌル終端があるということは、格納したい文字数よりも1文字分多くのメモリが必要であることを意味します。

【シングルクオーテーションとダブルクォーテーション】

文字列(string)は"Abc"のように、ダブルクォーテーションで囲って記述されます。文字(character)は'a'のようにシングルクオーテーションです。

【長い文字列の記述】

長い文字列を、次のように改行しながら記述することができます。

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

【文字列の配列】

液晶ディスプレイに大量の文章を表示するようなときは、文字列の配列を使うと便利です。文字列それ自体が配列なので、2次元配列となります。
以下のコードの、charの後についているアスタリスク(*)は、ポインタの配列であることを表します。つまり、配列の配列を作成しているわけです。
ポインタは、C言語のビギナーにとって、もっとも理解しがたい部分ですが、細部を理解していなくても、ここに示すような効果的な使い方ができます。

char* myStrings[]={
  "This is string 1",  "This is string 2",
  "This is string 3",  "This is string 4"
};

void setup(){
Serial.begin(9600);
}

void loop(){
for (int i = 0; i < 4; i++){
   Serial.println(myStrings[i]);
   delay(500);
   }
}



[目次へ戻る]

Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください [Arduino wiki]