Linux講座にようこそ。このページは「C言語プログラミング入門 - 第14章.ライブラリ関数 - 文字列処理ライブラリ」です。
C言語では文字列をchar型の配列として扱いますので、文字列の代入(コピー)や文字列の比較は代入演算子(=)や比較演算子(==>や!=)で行う事は出来ません。そこで、文字列を扱うライブラリ関数が沢山用意されていますので、文字列を扱う場合はここで紹介する関数を使用すると良いでしょう。
なお、文字列については次のページで説明していますので、文字列についての基本事項をお知りになりたい場合は参照してください。
ここで説明する関数は次の通りです。なお、ヘッダファイルとしてはstring.hが必要です。
区分 | 関数名 | 機能概要 |
---|---|---|
文字列長の取得 | strlen() | 文字列の長さを取得します。 |
文字列の比較 | strcmp() | 2つの文字列を比較します。 |
strncmp() | 2つの文字列を比較します。strcmp関数との相違は比較する文字数を引数で指定できることです。 | |
memcmp() | 2つのメモリ領域を比較します。(文字列の比較ではないのですが、ここで説明します) | |
文字列のコピー | strcpy() | 終端のヌル文字を含めて、文字列をコピーします。 |
strncpy() | 終端のヌル文字を含めて、文字列をコピーします。strcpy関数との相違はコピーする文字数を引数で指定できることです。 | |
memcpy() | メモリ領域をコピーします。(文字列のコピーではないのですが、ここで説明します) | |
文字列の連結 | strcat() | 2つの文字列を連結します。 |
strncat() | 2つの文字列を連結します。strcat関数との相違は連結する文字数を引数で指定できることです | |
文字および、文字列の検索 | strchr() | 文字列から指定された文字を検索して、その位置を結果として返します。 |
strrchr() | 文字列から指定された文字を検索して、その位置を結果として返します。strchr関数との相違は指定された文字が複数あった場合は、最後に現れた文字の位置を返します。 | |
strstr() | 文字列から指定された文字列を検索して、その位置を結果として返します。 | |
memchr() | メモリ領域の指定バイト数先から指定された文字を検索して、その位置を結果として返します。(文字列の比較ではないのですが、ここで説明します) | |
文字列から字句を取り出す | strtok() | 文字列中の区切り文字で区切られた字句(項目)を取り出します。 |
文字セットから成る文字列か 否かをチェック | strspn() | 指定された文字の組み合わせ(文字セット)から成る文字列か否かをチェックし、一致した文字数を返します。 |
strcspn() | 指定された文字の組み合わせ(文字セット)以外から成る文字列か否かをチェックし、一致した文字数を返します。 | |
文字列のロケールに基づく 比較および、変換 | strcoll() | 現在のロケールに従い、二つの文字列を比較します。 |
strxfrm() | strcoll関数とstrcmp関数(または、strncmp関数)で比較した結果が同じになるように文字列を変換します。 | |
その他 | strerror() | エラー番号に対応する説明文を取得します。 |
strpbrk() | 指定された文字の組み合わせ(文字セット)から成る文字列を検索します。 | |
memmove() | メモリ領域をコピーします。memcpy関数との相違は、コピー元とコピー先の領域が重なっていてもよいことです。(文字列のコピーではないのですが、ここで説明します) | |
memset() | メモリ領域を指定した値で埋め込みます。(文字列に特化した関数ではないのですが、ここで説明します) |