【例】
以下はどれも有効な文字列の宣言です。 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までお送りください
[ドキュメント一覧]