【C++Builder】C ランタイムライブラリリファレンス (string.h)

# 文字列操作 (String)

| ヘッダ<br>ファイル | [string.h](https://docwiki.embarcadero.com/RADStudio/ja/String.h%EF%BC%9A%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9) |
|:---|:---|
| 規格 | ANSI C (C89) / C90 |
| 概要 | 文字型の配列及び文字型の配列として扱われる他のオブジェクトの操作に有用な 1 つの型及び幾つかの関数を宣言し、1 つのマクロを定義する。 |

## プラグマ

## 型

| 名前 | 機能 |
|:---|:---|
| (size_t) | [sizeof()](https://docwiki.embarcadero.com/RADStudio/ja/Sizeof) が返す符号なし整数型。 |

## マクロ

| 名前 | 機能 |
|:---|:---|
| [(NULL)](https://docwiki.embarcadero.com/RADStudio/ja/NULL_define)        | 任意のデータオブジェクトポインタと互換性があるヌルポインタ定数です。 |


## 引数付きマクロ

## 関数

### メモリ関連

| 名前 | 機能 |
|:---|:---|
| [memchr()](https://docwiki.embarcadero.com/RADStudio/ja/Memchr%EF%BC%8C_wmemchr) | n バイト内で文字 c を検索します。 |
| [memcmp()](https://docwiki.embarcadero.com/RADStudio/ja/Memcmp) | 2 つのブロックをちょうど n バイトまで比較します。 |
| [memcpy()](https://docwiki.embarcadero.com/RADStudio/ja/Memcpy) | n バイトのブロックをコピーします。 |
| [memmove()](https://docwiki.embarcadero.com/RADStudio/ja/Memmove) | n バイトのブロックをコピーします。 |
| [memset()](https://docwiki.embarcadero.com/RADStudio/ja/Memset%EF%BC%8C_wmemset) | n バイトのメモリブロックをバイト c に設定します。 |

### 文字列関連

| 名前 | 機能 |
|:---|:---|
| [strcat()](https://docwiki.embarcadero.com/RADStudio/ja/Strcat%EF%BC%8C_mbscat%EF%BC%8Cwcscat) | 文字列を別の文字列に追加します。 |
| [strchr()](https://docwiki.embarcadero.com/RADStudio/ja/Strchr%EF%BC%8C_mbschr%EF%BC%8Cwcschr) | 文字列をスキャンして、指定された文字が最初に出現する箇所を検索します。 |
| [strcmp()](https://docwiki.embarcadero.com/RADStudio/ja/Strcmp,_mbscmp,_wcscmp) | 文字列を別の文字列と比較します。 |
| [strcoll()](https://docwiki.embarcadero.com/RADStudio/ja/Strcoll%EF%BC%8C_stricoll%EF%BC%8C_mbscoll%EF%BC%8C_mbsicoll%EF%BC%8Cwcscoll%EF%BC%8C_wcsicoll) | 2 つの文字列を比較します。 |
| [strcpy()](https://docwiki.embarcadero.com/RADStudio/ja/Strcpy) | 文字列を別の文字列にコピーします。 |
| [strcspn()](https://docwiki.embarcadero.com/RADStudio/ja/Strcspn%EF%BC%8C_mbscspn%EF%BC%8Cwcscspn) | 文字列をスキャンして、指定された文字列内の文字をまったく含まない先頭部分を検索します。 |
| [strerror()](https://docwiki.embarcadero.com/RADStudio/ja/Strerror) | エラーメッセージ文字列へのポインタを返します。 |
| [strlen()](https://docwiki.embarcadero.com/RADStudio/ja/Strlen%EF%BC%8C_mbslen%EF%BC%8Cwcslen%EF%BC%8C_mbstrlen) | 文字列の長さを計算します。 |
| [strncat()](https://docwiki.embarcadero.com/RADStudio/ja/Strncat) | 一方の文字列の一部をもう一方の文字列に付加します。 |
| [strncmp()](https://docwiki.embarcadero.com/RADStudio/ja/Strncmp%EF%BC%8C_mbsncmp%EF%BC%8Cwcsncmp) | 文字列の一部を別の文字列の一部と比較します。 |
| [strncpy()](https://docwiki.embarcadero.com/RADStudio/ja/Strncpy%E3%80%81mbsncpy%E3%80%81wcsncpy) | 文字列から別の文字列に指定されたバイト数をコピーします。必要であれば、切り捨てまたはパディングを行います。 |
| [strpbrk()](https://docwiki.embarcadero.com/RADStudio/ja/Strpbrk%EF%BC%8C_mbspbrk%EF%BC%8Cwcspbrk) | 文字列をスキャンして、指定された文字列内のいずれかの文字が最初に出現する箇所を検索します。 |
| [strrchr()](https://docwiki.embarcadero.com/RADStudio/ja/Strrchr%EF%BC%8C_mbsrchr%EF%BC%8Cwcsrchr) | 文字列をスキャンして、指定された文字が最後に出現する箇所を検索します。 |
| [strspn()](https://docwiki.embarcadero.com/RADStudio/ja/Strspn%EF%BC%8C_mbsspn%EF%BC%8Cwcsspn) | 文字列をスキャンして、指定された文字列内の文字からなる先頭部分を検索します。 |
| [strstr()](https://docwiki.embarcadero.com/RADStudio/ja/Strstr%EF%BC%8C_mbsstr%EF%BC%8Cwcsstr) | 文字列をスキャンして、指定された部分文字列が出現する箇所を検索します。 |
| [strtok()](https://docwiki.embarcadero.com/RADStudio/ja/Strtok%EF%BC%8C_mbstok%EF%BC%8Cwcstok) | 文字列からトークンを検索します。トークンは、2 番めの文字列で定義される区切り文字によって区切られます。 |
| [strxfrm()](https://docwiki.embarcadero.com/RADStudio/ja/Strxfrm%EF%BC%8Cwcsxfrm) | 文字列の一部を指定された照合順序の文字列に変換します。 |

:::note
ワイド文字用の関数が [wchar.h](https://qiita.com/ht_deko/items/5eaf661c0b3452845672) で定義されています。
:::

## 資料

 - [C 言語 / 標準ライブラリ / string.h (Wikibooks)](https://ja.wikibooks.org/wiki/C%E8%A8%80%E8%AA%9E/%E6%A8%99%E6%BA%96%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA/string.h)
 - [z/OS C/C++ ランタイム・ライブラリー・リファレンス string.h &#x2014; ストリング処理関数 (IBM)](https://www.ibm.com/docs/ja/zos/3.1.0?topic=files-stringh-string-manipulation-functions)
 - [C 言語の標準ヘッダ一覧 string.h (C 言語)](http://www.c-lang.org/detail/string_h.html)

---

[&#x21E6; インデックスへ](https://qiita.com/ht_deko/items/31f4b37daa97270e2416)

---