C には組み込みの文字列型がありません。文字列を保持するには、文字の配列を使用する必要があります。
C では、ある配列を別の配列に代入することもできないため、標準 C ライブラリのさまざまな関数を使用して配列要素をある配列から別の配列にコピーするか、自分でそれを行うループを作成する必要があります。独自のループを作成する理由が時々ありますが、標準 C ライブラリ関数を使用することをお勧めします。
型で使用される標準の ANSI 型文字列の場合、文字列をchar
コピーまたは比較する関数など、ほとんどが str で始まる多数の関数があります。または など、コピーまたは比較する最大文字数を指定する別のセットもあります。strcpy()
strcmp()
strncpy()
strncmp()
C の文字列は、バイナリ ゼロ文字で終了する文字の配列です。したがって、"Constant" などの定数文字列を使用すると、文字ごとに 1 つの要素とゼロ ターミネータの追加要素を持つ文字の配列が作成されます。
つまり、char 配列のサイズを変更するときは、ゼロ ターミネータを保持するために配列要素をもう 1 つ追加することも忘れないでください。
strncpy() 関数は、指定された最大文字数まで、またはゼロ終止符が見つかったときに、1 つの char 配列を別の char 配列にコピーします。最大文字数に達した場合、宛先配列はゼロ ターミネータで終了しないため、注意が必要です。
char one[10];
char two[20];
strncpy (one, "1234567", 10); // copy constant to the char buffer max of 10 chars
one[9] = 0; // make sure the string is zero terminated, it will be this is demo
strcpy (two, one);
strcat (two, " suffix"); // add some more text to the end
UNICODE で使用されるワイド文字を操作する関数もあります。