ITメモ
C言語 / Programming Language C
開発環境 / Development Environment
【Mac】Xcode【Win】Visual Stadio
基礎 / Basic
About C言語書式コメントコンパイルとリンクメイクファイル / Makefileヘッダファイル変数定数型 / Type配列 / Arrayポインタ / Pointer演算子 / Operator制御文 / Control Statement関数指定子 / 修飾子構造体と共用体 / Structure & Unionプリプロセッサ / PreprocessorthisキーワードTypedef
入出力 / Input & Output
入出力入力フォーマット指定子出力フォーマット指定子「printf」関数を使って文字を出力・表示させる方法「printf_s」関数を使って文字を出力・表示させる方法「scanf」関数を使って入力させる方法「scanf_s」関数を使って入力させる方法「getchar」関数を使って「1文字」だけ入力させる方法「gets」関数を使って「文字列」を入力させる方法
文字列 / String
文字列 / String「snprintf」関数で「配列」に文字列を書き込む方法
ネットワーク / Network
memset - メモリブロックのセット
メモリー管理
メモリー
オペレーション / Operation
ファイルを操作をする方法コマンドラインプログラム / Command-Line Programプロセス / Processソケット通信 / Socket Communication
用語集 / Glossary
サブルーチン / Subroutineスタックとキュー / Stack & Cueスレッド / Thread
C言語標準ライブラリ(ヘッダファイル)
C言語標準ライブラリ【assert.h】 - 診断機能【complex.h】 - 複素数計算【ctype.h】 - 文字操作【errno.h】 - エラー【fenv.h】 - 浮動小数点環境【float.h】 - 浮動小数点型の特性【inttypes.h】 - 整数型の書式の変換【iso646.h】 - 代替つづり(Alternate spellings)【limits.h】 - 整数型の大きさ【locale.h】 - 文化圏固有操作【math.h】 - 数学【setjmp.h】 - 非局所分岐【signal.h】 - シグナル操作【stdalign.h】 - アライメント【stdarg.h】 - 可変個数の実引数【stdatomic.h】 - アトミック操作【stdbool.h】 - 論理型および論理値【stddef.h】 - 共通の定義【stdint.h】 - 整数型【stdio.h】 - 入出力【stdlib.h】 - 一般ユーティリティ【stdnoreturn.h】 - _Noreturn【string.h】 - 文字列操作【tgmath.h】 - 型総称数学関数(Type-generic math)【threads.h】 - マルチスレッド【time.h】 - 日付及び時間【uchar.h】 - Unicodeユーティリティ【wchar.h】 - 多バイトおよびワイド文字拡張ユーティリティ【wctype.h】 - ワイド文字種分類およびワイド文字大文字小文字変換ユーティリティ
C言語ライブラリ(ヘッダファイル)
C言語ヘッダファイル【winsock.h】





【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文字検索にも使える。