【C言語】標準ライブラリ【string.h】 - 文字列操作
【C言語】
標準ライブラリ【string.h】
文字列操作
文字列操作 <string.h>
文字列操作に関する型・マクロ・関数の宣言定義。
memchr | メモリブロック中の文字検索 |
memcmp | メモリブロックの比較 |
memcpy | メモリブロックのコピー |
memmove | メモリブロックの転送 |
memset | メモリブロックを指定文字で埋める |
strchr | 文字列内の文字探索 |
strcat | 文字列の連結 |
strcmp | 文字列の比較 |
strcpy | 文字列のコピー |
strcspn | 文字列中の指定文字群を含まない先頭部分の長さ |
strerror | エラー番号に対応したエラーメッセージ文字列の取得 |
strcoll | ロケールに応じた順序付けによる文字列の比較 |
strlen | 文字列の長さ |
strncat | 字数制限付きで文字列の連結 |
strncmp | 字数制限付きで文字列の比較 |
strncpy | 字数制限付きで文字列のコピー |
strpbrk | 文字列中の文字群探索 |
strrchr | 文字列内の逆方向文字探索 |
strspn | 文字列中の指定文字群を含む先頭部分の長さ |
strstr | 文字列中の文字列探索 |
strtok | 文字列からの字句切り出し |
strxfrm | ロケールに応じた順序付けになるように文字列を変換 |
文字列処理 <string.h> :主に文字列処理を行う関数群。
主に文字列処理を行う関数群。
汎用のメモリ処理と共用できる関数も多い。
なお、半角文字を基準とするので、全角文字の処理には注意すること。
- [ strcpy ] : 文字配列に文字列をコピーする。文字列の代入に使用する。
-
関数型 : char *strcpy(char *s, const char *t);
引数 : 文字配列、文字列
戻り値 : 引数の文字配列をそのまま返す
機能 : 文字配列に文字列をコピーする。文字列の代入に使用する。
- [ strncpy ] : 文字配列に指定文字数だけ文字列をコピーする。
-
関数型 : char *strncpy(char *s, const char *t, size_t n);
引数 : 文字配列、文字列、最大コピー文字数
戻り値 : 引数の文字配列をそのまま返す。
機能 : 文字配列に指定文字数だけ文字列をコピーする。
注意 : 文字数が多い場合にはナル文字を付加しないので、必ず、s[n] = '\0'; としてナル文字を付加して下さい。
- [ strcat ] : 文字配列の後ろに文字列をつなげる。
-
関数型 : char *strcat(char *s, const char *t);
引数 : 文字配列、文字列
戻り値 : 引数の文字配列をそのまま返す
機能 : 文字配列の後ろに文字列をつなげる。
- [ strncat ] : 文字配列の後ろに指定文字数だけ文字列をつなげる。
-
関数型 : char *strncat(char *s, const char *t, size_t n);
引数 : 文字配列、文字列、最大連結文字数
戻り値 : 引数の文字配列をそのまま返す。
機能 : 文字配列の後ろに指定文字数だけ文字列をつなげる。
- [ strlen ] : 文字列の長さを返す。
-
関数型 : size_t strlen(const char *s);
引数 : 文字列
戻り値 : 文字列の長さ。ナル文字は含めない。
機能 : 文字列の長さを返す。
- [ strcmp ] : 文字列1と文字列2を比較する。
-
関数型 : int strcmp(const char *s, const char *t);
引数 : 文字列1、文字列2
戻り値 : 文字列1が大きいときは正、同じ時は0、文字列2が大きいときは負。
機能 : 文字列1と文字列2を比較する。
- [ strncmp ] : 文字列を指定文字数だけ比較する。
-
関数型 : int strncmp(const char *s, const char *t, size_t n);
引数 : 文字列1、文字列2、比較文字数
戻り値 : 文字列1が大きいときは正、同じ時は0、文字列2が大きいときは負。
機能 : 文字列を指定文字数だけ比較する。
- [ strchr ] : 文字列の先頭から文字を検索する。
-
関数型 : char *strchr(const char *s, int c);
引数 : 文字列、文字
戻り値 : 見つかった位置のアドレス、見つからない場合はNULL。
機能 : 文字列の先頭から文字を検索する。
- [ strrchr ] : 文字列の後ろから文字を検索する。
-
関数型 : char *strrchr(const char *s, int c);
引数 : 文字列、文字
戻り値 : 見つかった位置のアドレス、見つからない場合はNULL。
機能 : 文字列の後ろから文字を検索する。
- [ strcspn ] : 対象文字列の中から検索文字列に含まれる文字を検索する。
-
関数型 : size_t strcspn(const char *s, const char *t);
引数 : 対象文字列、検索文字列
戻り値 : 見つかった位置までの文字数。
機能 : 対象文字列の中から検索文字列に含まれる文字を検索する。
- [ strspn ] : 対象文字列の中から検索文字列に含まれない文字を検索する。
-
関数型 : size_t strspn(const char *s, const char *t);
引数 : 対象文字列、検索文字列
戻り値 : 見つからない位置までの文字数。
機能 : 対象文字列の中から検索文字列に含まれない文字を検索する。
- [ strpbrk ] : 対象文字列の先頭から検索文字列に含まれる文字を検索する。
-
関数型 : char *strpbrk(const char *s, const char *t);
引数 : 対象文字列、検索文字列
戻り値 : 見つかった最初の文字へのポインタ、見つからない場合はNULL。
機能 : 対象文字列の先頭から検索文字列に含まれる文字を検索する。
- [ strstr ] : 対象文字列から検索文字列を検索する。
-
関数型 : char *strstr(const char *s, const char *t);
引数 : 対象文字列、検索文字列
戻り値 : 見つかった位置へのポインタ、見つからない場合はNULL。
機能 : 対象文字列から検索文字列を検索する。
- [ strtok ] : 文字配列を、区切り文字列に含まれる文字がある位置で区切る。
-
関数型 : char *strtok(char *s, const char *t);
引数 : 文字配列、区切り文字列
戻り値 : 区切られた単語へのポインタ。見つからない場合はNULL。
機能 : 文字配列を、区切り文字列に含まれる文字がある位置で区切る。文字配列をNULLにして呼び出すと次の単語を取得出来る。
- [ strerror ] : エラーメッセージを取得する。
-
関数型 : char *strerror(int n);
引数 : エラー番号
戻り値 : エラーメッセージが格納された配列。対応するエラーがないときは空文字列。
機能 : エラーメッセージを取得する。
注意 : 取得した配列の中身は書き換えないようにする。
- [ memcpy ] : メモリ内容をコピーする。コピー領域が重なっているとうまくいかない。
-
関数型 : void *memcpy(void *dest, const void *source, size_t count);
引数 : コピー先、コピー元、コピーサイズ
戻り値 : 引数のコピー先を返す
機能 : メモリ内容をコピーする。コピー領域が重なっているとうまくいかない。
- [ memmove ] : メモリ内容をコピーする。コピー領域が重なっていても問題ない。
-
関数型 : void *memmove(void *dest, const void *source, size_t count);
引数 : コピー先、コピー元、コピーサイズ
戻り値 : 引数のコピー先を返す
機能 : メモリ内容をコピーする。コピー領域が重なっていても問題ない。
補足 : move という名前だが、移動ではないので注意。
- [ memset ] : メモリ内容の指定サイズ分の要素全てに数値を代入。文字にも使用できる。
-
関数型 : void *memset(void *addr, int byte, size_t count);
引数 : 配列、数値、代入サイズ
戻り値 : 引数の配列をそのまま返す
機能 : メモリ内容の指定サイズ分の要素全てに数値を代入。文字にも使用できる。
- [ memcmp ] : メモリ同士を比較する。文字列の比較も出来る。
-
関数型 : int memcmp(const void *addr1, const void *addr2, size_t n);
引数 : 配列1、配列2、比較サイズ
戻り値 : 配列1が大きいときは正、同じ時は0、配列2が大きいときは負。
機能 : メモリ同士を比較する。文字列の比較も出来る。
- [ memchr ] : メモリ内から数値を検索する。1文字検索にも使える。
-
関数型 : void *memchr(const void *addr, int byte, size_t count);
引数 : 配列、1バイトの数値、検索するサイズ
戻り値 : 見つかった位置のアドレス、見つからない場合はNULL。
機能 : メモリ内から数値を検索する。1文字検索にも使える。