文字配列の操作に必要な種々の関数を定義します。
|
|
|
関数
|
memcpy
|
複写元の記憶域の内容を指定した大きさ分、複写先の記憶域に複写します。
|
strcpy
|
複写元の文字列の内容を、複写先の記憶域にヌル文字も含めて複写します。
|
strncpy
|
複写元の文字列を指定された文字数分、複写先の記憶域に複写します。
|
strcat
|
文字列の後に、文字列を連結します。
|
strncat
|
文字列に文字列を指定した文字数分、連結します。
|
memcmp
|
指定された2つの記憶域の比較を行います。
|
strcmp
|
指定された2つの文字列を比較します。
|
strncmp
|
指定された2つの文字列を指定された文字数分まで比較します。
|
memchr
|
指定された記憶域において、指定された文字が最初に現われる位置を検索します。
|
strchr
|
指定された文字列において、指定された文字が最初に現われる位置を検索します。
|
strcspn
|
指定された文字列を先頭から調べ、別に指定した文字列中の文字以外の文字が先頭から何文字続くか求めます。
|
strpbrk
|
指定された文字列において、別に指定された文字列中の文字が最初に現われる位置を検索します。
|
strrchr
|
指定された文字列において指定された文字が最後に現われる位置を検索します。
|
strspn
|
指定された文字列を先頭から調べ別に指定した文字列中の文字が先頭から何文字続くかを求めます。
|
strstr
|
指定された文字列において、別に指定した文字列が最初に現われる位置を検索します。
|
strtok
|
指定した文字列をいくつかの字句に切り分けます。
|
memset
|
指定された記憶域の先頭から指定された文字を指定された文字数分設定します。
|
strerror
|
エラーメッセージを設定します。
|
strlen
|
文字列の文字数を計算します。
|
memmove
|
複写元の記憶域の内容を、指定した大きさ分、複写先の記憶域に複写します。複写元と複写先の記憶域が重なっていても、正しく複写されます。
|
処理系定義仕様
本標準インクルードファイル内で定義されている関数を使用する時は、以下の2つの事項に注意する必要があります。
(1) | 文字列の複写を行う時、複写先の領域が複写元の領域よりも小さい場合、動作は保証しませんので注意が必要です。 |
char a[]="abc";
char b[3];
:
:
strcpy(b,a);
この場合、配列aのサイズは(ヌル文字を含めて)4バイトです。したがって、strcpy関数によって複写を行うと、配列bの領域以外のデータを書き換えることになります。
(2) | 文字列の複写を行う時、複写元の領域と複写先の領域が重なっていると正しい動作は保証しませんので注意が必要です。 |
int a[]="a";
:
:
strcpy(&a[1], a);
:
:
この場合、複写元の文字列がヌル文字に達する以前に、ヌル文字の上に文字'a'を書き込むことになります。したがって、複写元の文字列のデータに続くデータを書き換えることになります。