string.h
string.hをインクルードすると、文字列を操作する関数を使用できます。
文字列は文字型の配列であり、その名前はその配列の先頭のアドレスを指しています。
そのため、ほかの型の変数で出来るような演算ができません。
その代わりに文字列操作関数を用いて処理します。
文字操作関数はctype.hです。
混同しないようにしましょう。
文字列のコピー
文字列をある変数にコピーするにはstrcpy()関数を使います。
第一引数に指定した変数に第二引数に指定した文字列をコピーできます。
strcpy(【コピー先】,【コピー元】)
配列aに配列bの値をコピーするには以下のようになります。
string_sample1.c
char a[4];
char b[] = "abcd";
strcpy(a, b);
また、strncpy()は第三引数にコピーする先頭からの文字数を指定できます。
strncpy(【コピー先】,【コピー元】, 【先頭からの文字数】)
配列aに配列bの前から3文字以降をコピーするには以下のようになります。
string_sample2.c
char a[4];
char b[] = "abcd";
strncpy(a, b, 3);
配列aには"cd"がコピーされます。
文字列の比較
二つの文字列を比較するにはstrcmp()関数を用います。
第一引数と第二引数の文字列の文字コードを比較し、第一引数の方が大きければ正の整数、小さければ負の整数、両方とも同じであれば0を返します。
strcmp(【比べる文字列】,【比べる文字列】, 【先頭からの文字数】)
これもstrncmpによって第三引数に比較の開始位置を指定できます。
strncmp(【比べる文字列】,【比べる文字列】)
文字列の探索
strchar()関数で文字列の中から、指定した文字の探索ができます。
第一引数に指定した文字列から第二引数に指定した文字が最初に出てくる位置のポインタを返します。
strchar(【探索元の文字列】,【探す文字】)
文字列の連結
strcat()関数で複数の文字列を連結できます。
第一引数に指定した文字列のNULL文字を、第二引数で指定した文字列に置換します。
strcat(【連結元の文字列】,【連結元の文字列】)
他の関数と同様にstrncat()は第三引数に第二引数の文字数を指定できます。
strncat(【連結元の文字列】,【連結元の文字列】, 【先頭からの文字数】)