
128
8
章 配列
配列の全要素は、−1に初期化された最終要素を除いて初期値 0を持つ。
8.4
文字列
文字列は、ナル文字
'\0'
で終わる一連の文字の列である。文字列の長さは、終端ナル文
字を除いた文字の個数である。Cには文字列型がなく、結果として、文字列をオペランドと
する演算子もない。
その代わりに、文字列は要素が型
char
またはワイド文字型、
wchar_t
,
char16_t
,
char32_
t
のいずれかを持つ配列に格納される。ワイド文字の文字列はワイド文字列と呼ばれる。C
標準ライブラリは、比較、コピー、連結など文字列の基本演算を行う多数の関数を提供する。
C11は、伝統的文字列関数に加えて、文字列演算が配列境界を越えないことを保証する「セ
キュア」版を導入した(「17.4文字列処理」参照)。
文字列リテラルを使って文字型の配列を初期化できる。例えば、次の2つの配列定義は
等しい。
char str1[30] = "Let's go"; //
文字列長:
8
、配列長:
30
char str1[30] = { 'L', 'e', 't', '\'', 's',' ', 'g', 'o', '\0' };
文字列を持つ配列は常に、終端ナル文字のために文字列長より少なくとも1要素分大き
い。配列
str1
は、最大長29までの文字列を格納できる。もし長さ30ではなく長さ8の配列
を定義したら、終端ナル文字を含めることができないので失敗する。
明示的長さなしに文字配列を定義し、文字列リテラルで初期化したら、作られる配列は ...