Everything
7.4.13 <string.h>

文字配列の操作に必要な種々の関数を定義します。

種別

定義名

説明

関数

memcpy

複写元の記憶域の内容を指定した大きさ分、複写先の記憶域に複写します。

strcpy

複写元の文字列の内容を、複写先の記憶域にヌル文字も含めて複写します。

strncpy

複写元の文字列を指定された文字数分、複写先の記憶域に複写します。

strcat

文字列の後に、文字列を連結します。

strncat

文字列に文字列を指定した文字数分、連結します。

memcmp

指定された2つの記憶域の比較を行います。

strcmp

指定された2つの文字列を比較します。

strncmp

指定された2つの文字列を指定された文字数分まで比較します。

memchr

指定された記憶域において、指定された文字が最初に現われる位置を検索します。

strchr

指定された文字列において、指定された文字が最初に現われる位置を検索します。

strcspn

指定された文字列を先頭から調べ、別に指定した文字列中の文字以外の文字が先頭から何文字続くか求めます。

strpbrk

指定された文字列において、別に指定された文字列中の文字が最初に現われる位置を検索します。

strrchr

指定された文字列において指定された文字が最後に現われる位置を検索します。

strspn

指定された文字列を先頭から調べ別に指定した文字列中の文字が先頭から何文字続くかを求めます。

strstr

指定された文字列において、別に指定した文字列が最初に現われる位置を検索します。

strtok

指定した文字列をいくつかの字句に切り分けます。

memset

指定された記憶域の先頭から指定された文字を指定された文字数分設定します。

strerror

エラーメッセージを設定します。

strlen

文字列の文字数を計算します。

memmove

複写元の記憶域の内容を、指定した大きさ分、複写先の記憶域に複写します。複写元と複写先の記憶域が重なっていても、正しく複写されます。

 

処理系定義仕様

 

項目

コンパイラの仕様

1

strerror関数が返すエラーメッセージの内容

10.5.6 C標準ライブラリ関数のエラーメッセージを参照してください。

 

本標準インクルードファイル内で定義されている関数を使用する時は、以下の2つの事項に注意する必要があります。

(1)

文字列の複写を行う時、複写先の領域が複写元の領域よりも小さい場合、動作は保証しませんので注意が必要です。

        char a[]="abc";
        char b[3];
        strcpy(b,a);

 

この場合、配列aのサイズは(ヌル文字を含めて)4バイトです。したがって、strcpy関数によって複写を行うと、配列bの領域以外のデータを書き換えることになります。

 

(2)

文字列の複写を行う時、複写元の領域と複写先の領域が重なっていると正しい動作は保証しませんので注意が必要です。

        int a[]="a";
             :
             :
        strcpy(&a[1], a);
             :
             :

 

この場合、複写元の文字列がヌル文字に達する以前に、ヌル文字の上に文字'a'を書き込むことになります。したがって、複写元の文字列のデータに続くデータを書き換えることになります。