C++:C標準ライブラリと主な関数のリスト(3) string.h
C言語の標準ライブラリの中から、文字列を処理する関数がセットになっているstring.hをまとめました。
INDEX
string.h
主に文字列処理を行う関数群。汎用のメモリ処理と共用できる関数も多い。
半角文字が基準であるため、全角文字の処理に注意。
strcpy
書式 |
char *strcpy(char *s, const char *t); |
引数 |
char *s(文字配列)/const char *t(文字列) |
戻り値 |
引数の文字配列をそのまま返す |
機能 |
文字配列に文字列をコピー(文字列の代入に使用)する |
strncpy
書式 |
th>
char *strncpy(char *s, const char *t, size_t n); |
引数 |
char *s(文字配列)/const char *t(文字列)/size_t n(最大コピー文字数) |
戻り値 |
引数の文字配列をそのまま返す |
機能 |
文字配列に指定文字数だけ文字列をコピーする |
注意 |
文字数が多い場合にはNULL文字を付加しないので、必ず s[n] = ‘¥0’; としてNULL文字を付加する |
strcat
書式 |
char *strcat(char *s, const char *t); |
引数 |
char *s(文字配列)/const char *t(文字列) |
戻り値 |
引数の文字配列をそのまま返す |
機能 |
文字配列の後ろに文字列をつなげる |
strncat
書式 |
char *strncat(char *s, const char *t, size_t n); |
引数 |
char *s (文字配列)/char *t(文字列)/size_t n(最大連結文字数) |
戻り値 |
引数の文字配列をそのまま返す |
機能 |
文字配列の後ろに指定文字数だけ文字列をつなげる |
strlen
書式 |
size_t strlen(const char *s); |
引数 |
const char *s(文字列) |
戻り値 |
文字列の長さ(NULL文字は含まない) |
機能 |
文字列の長さを返す |
strcmp
書式 |
int strcmp(const char *s, const char *t); |
引数 |
const char *s(文字列1)/const char *t(文字列2) |
戻り値 |
文字列1が大きいときは正/同じ時は0/文字列2が大きいときは負 |
機能 |
文字列1と文字列2を比較する |
strncmp
書式 |
int strncmp(const char *s, const char *t, size_t n); |
引数 |
const char *s(文字列1)/const char *t(文字列2)/size_t n(比較文字数) |
戻り値 |
文字列1が大きいときは正/同じ時は0/文字列2が大きいときは負 |
機能 |
文字列を指定文字数だけ比較する |
strchr
書式 |
char *strchr(const char *s, int c); |
引数 |
const char *s(文字列)/int s(文字) |
戻り値 |
見つかった位置のアドレス/見つからない場合はnull |
機能 |
文字列の先頭から文字を検索する |
strrchr
書式 |
char *strrchr(const char *s, int c); |
引数 |
const char *s(文字列)/int c(文字) |
戻り値 |
見つかった位置のアドレス/見つからない場合はnull |
機能 |
文字列の後ろから文字を検索する |
strcspn
書式 |
size_t strcspn(const char *s, const char *t); |
引数 |
const char *s(対象文字列)/const char *s(検索文字列) |
戻り値 |
見つかった位置までの文字数 |
機能 |
対象文字列の中から検索文字列に含まれる文字を検索する |
strspn
書式 |
size_t strspn(const char *s, const char *t); |
引数 |
const char *s(対象文字列)/const char*t(検索文字列) |
戻り値 |
見つからない位置までの文字数 |
機能 |
対象文字列の中から検索文字列に含まれない文字を検索する |
strpbrk
書式 |
char *strpbrk(const char *s, const char *t); |
引数 |
const char *s(対象文字列)/const char *t(検索文字列) |
戻り値 |
見つかった最初の文字へのポインタ/見つからない場合はnull |
機能 |
対象文字列の先頭から検索文字列に含まれる文字を検索する |
strstr
書式 |
char *strstr(const char *s, const char *t); |
引数 |
const char *s(対象文字列)/const char *t(検索文字列) |
戻り値 |
見つかった位置へのポインタ/見つからない場合はnull |
機能 |
対象文字列から検索文字列を検索する |
strtok
書式 |
char *strtok(char *s, const char *t); |
引数 |
char *s(文字配列)/const char *t(区切り文字列) |
戻り値 |
区切られた単語へのポインタ/見つからない場合はnull |
機能 |
文字配列を区切り文字列に含まれる文字がある位置で区切る。
文字配列をnullにして呼び出すと次の単語を取得出来る。 |
strerror
書式 |
char *strerror(int n); |
引数 |
int n(エラー番号) |
戻り値 |
エラーメッセージが格納された配列/対応するエラーがないときは空文字列 |
機能 |
エラーメッセージを取得する |
注意 |
取得した配列の中身は書き換えないようにする |
memcpy
書式 |
void *memcpy(void *dest, const void *source, size_t count); |
引数 |
void *dest(コピー先)/const void *source(コピー元)/size_t count(コピーサイズ) |
戻り値 |
引数のコピー先を返す |
機能 |
メモリ内容をコピーする。コピー領域が重なっていると機能しない。 |
memmove
書式 |
void *memmove(void *dest, const void *source, size_t count); |
引数 |
void *dist(コピー先)/const void *source(コピー元)/size_t count(コピーサイズ) |
戻り値 |
引数のコピー先を返す |
機能 |
メモリ内容をコピーする/コピー領域が重なっていても問題ない |
補足 |
この関数の move は移動ではないので注意 |
memset
書式 |
void *memset(void *addr, int byte, size_t count); |
引数 |
void *addr(配列)/int byte(数値)/size_t count(代入サイズ) |
戻り値 |
引数の配列をそのまま返す |
機能 |
メモリ内容の指定サイズ分の要素全てに数値を代入する。文字にも使用できる。 |
memcmp
書式 |
int memcmp(const void *addr1, const void *addr2, size_t n); |
引数 |
const void *addr1(配列1)/const void *addr2(配列2)/size_t n(比較サイズ) |
戻り値 |
配列1が大きいときは正/同じ時は0/配列2が大きいときは負 |
機能 |
メモリ同士や文字列の比較を行う |
memchr
書式 |
void *memchr(const void *addr, int byte, size_t count); |
引数 |
const void *addr(配列)int byte(1バイトの数値)/size_t count(検索するサイズ) |
戻り値 |
見つかった位置のアドレス/見つからない場合はnull |
機能 |
メモリ内から数値を検索。1文字検索にも使用する。 |
さいごに
この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。