cmn-clib(CommonLibraryForC)
C言語共通ライブラリ
|
文字列系 共通関数 I/Fヘッダファイル [詳解]
データ構造 | |
struct | _tag_CmnStringBuffer |
マクロ定義 | |
#define | EQUAL 0 |
型定義 | |
typedef CmnDataList | CmnStringList |
typedef struct _tag_CmnStringBuffer | CmnStringBuffer |
関数 | |
D_EXTERN char * | CmnString_RTrim (char *str) |
右側トリム [詳解] | |
D_EXTERN char * | CmnString_LTrim (char *str) |
左側トリム [詳解] | |
D_EXTERN char * | CmnString_Trim (char *str) |
トリム [詳解] | |
D_EXTERN char * | CmnString_Replace (const char *src, const char *befor, const char *after, char *dest) |
文字列置換 [詳解] | |
D_EXTERN char * | CmnString_ReplaceNew (const char *src, const char *befor, const char *after) |
文字列置換(動的メモリ確保) [詳解] | |
D_EXTERN char * | CmnString_StrCatNew (const char *left, const char *right) |
文字列連結(動的メモリ確保) [詳解] | |
D_EXTERN char * | CmnString_StrCopyNew (const char *str) |
文字列コピー(動的メモリ確保) [詳解] | |
D_EXTERN char * | CmnString_StrEol (const char *str, char *delim) |
改行コード(End Of Line:CRLF( ) or LF( ) or CR())を検索する。 [詳解] | |
D_EXTERN int | CmnString_Split (char *buf, size_t rowlen, size_t collen, const char *str, const char *delim) |
文字列分割(into配列) [詳解] | |
D_EXTERN CmnStringList * | CmnString_SplitAsList (CmnStringList *list, const char *str, const char *delim) |
文字列分割(into CmnDataList) [詳解] | |
D_EXTERN CmnStringList * | CmnString_SplitLine (CmnStringList *list, const char *str) |
文字列を改行コード(CRLF/LF/CRの何れか)で分解してlistに格納する。 [詳解] | |
D_EXTERN char * | CmnString_Lpad (char *buf, const char *str, char padch, size_t digit) |
文字列の左側パディング [詳解] | |
D_EXTERN char * | CmnString_Rpad (char *buf, const char *str, char padch, size_t digit) |
文字列の右側パディング [詳解] | |
D_EXTERN int | CmnString_StartWith (const char *str, const char *mark) |
対象文字列が特定文字列で始まっているかチェックする [詳解] | |
D_EXTERN int | CmnString_EndWith (const char *str, const char *mark) |
対象文字列が特定文字列で終わっているかチェックする [詳解] | |
D_EXTERN int | CmnString_IndexOf (const char *str, const char *mark) |
strのなかで最初に出現するmarkの位置(先頭文字をゼロとした文字数)を返す。 [詳解] | |
D_EXTERN int | CmnString_LastIndexOf (const char *str, const char *mark) |
strのなかで最後に出現するmarkの位置(先頭文字をゼロとした文字数)を返す。 [詳解] | |
D_EXTERN CmnStringList * | CmnStringList_Create () |
文字列リスト作成 [詳解] | |
D_EXTERN void | CmnStringList_Free (CmnStringList *list) |
文字列リスト解放 [詳解] | |
D_EXTERN void | CmnStringList_Add (CmnStringList *list, const char *str) |
文字列リスト要素追加 [詳解] | |
D_EXTERN char * | CmnStringList_Get (CmnStringList *list, int index) |
文字列リスト要素取得 [詳解] | |
D_EXTERN CmnStringBuffer * | CmnStringBuffer_Create (const char *str) |
文字列バッファ作成 [詳解] | |
D_EXTERN int | CmnStringBuffer_Append (CmnStringBuffer *buf, const char *str) |
文字列バッファへのデータ追加 [詳解] | |
D_EXTERN int | CmnStringBuffer_Set (CmnStringBuffer *buf, const char *str) |
文字列バッファへのデータ設定 [詳解] | |
D_EXTERN int | CmnStringBuffer_SetByCmnDataBuffer (CmnStringBuffer *buf, const CmnDataBuffer *dat) |
文字列バッファへのデータ設定(by CmnDataBuffer) [詳解] | |
D_EXTERN void | CmnStringBuffer_Free (CmnStringBuffer *buf) |
文字列バッファの解放 [詳解] | |
文字列系 共通関数 I/Fヘッダファイル
文字列系共通関数を使用するためのI/Fヘッダファイル。
文字列系の共通関数を使用する場合は、このヘッダファイルを読み込むこと
#define EQUAL 0 |
文字列一致(strcmp関数用)
typedef struct _tag_CmnStringBuffer CmnStringBuffer |
自動領域拡張文字列バッファ
typedef CmnDataList CmnStringList |
文字列リスト(構造は単方向リストと同じ)
D_EXTERN int CmnString_EndWith | ( | const char * | str, |
const char * | mark | ||
) |
対象文字列が特定文字列で終わっているかチェックする
str | 対象文字列 |
mark | チェックする文字列 |
D_EXTERN int CmnString_IndexOf | ( | const char * | str, |
const char * | mark | ||
) |
strのなかで最初に出現するmarkの位置(先頭文字をゼロとした文字数)を返す。
str | ベース文字列 |
mark | 検索する文字列 |
D_EXTERN int CmnString_LastIndexOf | ( | const char * | str, |
const char * | mark | ||
) |
strのなかで最後に出現するmarkの位置(先頭文字をゼロとした文字数)を返す。
str | ベース文字列 |
mark | 検索する文字列 |
D_EXTERN char* CmnString_Lpad | ( | char * | buf, |
const char * | str, | ||
char | padch, | ||
size_t | digit | ||
) |
文字列の左側パディング
buf | パディング後の文字列を格納するバッファ |
str | 元文字列 |
padch | パディングする文字 |
digit | パディング後何文字にするか |
D_EXTERN char* CmnString_LTrim | ( | char * | str | ) |
左側トリム
文字列の左側のスペースを削除する
str | (I) トリム処理対象の文字列 |
D_EXTERN char* CmnString_Replace | ( | const char * | src, |
const char * | befor, | ||
const char * | after, | ||
char * | dest | ||
) |
文字列置換
srcを読み込み、oldをnewに置換した文字列をdestに格納する。
src | (I) 元文字列 |
befor | (I) 置換対象文字列 |
after | (I) 置換後文字列 |
dest | (O) 置換処理後の文字列を格納するバッファ |
D_EXTERN char* CmnString_ReplaceNew | ( | const char * | src, |
const char * | befor, | ||
const char * | after | ||
) |
文字列置換(動的メモリ確保)
srcを読み込み、oldをnewに置換した文字列を生成する。
src | (I) 元文字列 |
befor | (I) 置換対象文字列 |
after | (I) 置換後文字列 |
D_EXTERN char* CmnString_Rpad | ( | char * | buf, |
const char * | str, | ||
char | padch, | ||
size_t | digit | ||
) |
文字列の右側パディング
buf | パディング後の文字列を格納するバッファ |
str | 元文字列 |
padch | パディングする文字 |
digit | パディング後何文字にするか |
D_EXTERN char* CmnString_RTrim | ( | char * | str | ) |
右側トリム
文字列の右側のスペースを削除する
str | (I/O) トリム処理対象の文字列 |
D_EXTERN int CmnString_Split | ( | char * | buf, |
size_t | rowlen, | ||
size_t | collen, | ||
const char * | str, | ||
const char * | delim | ||
) |
文字列分割(into配列)
strをdelimで分割してbufに格納する。 bufには十分なサイズを確保しておくこと。
buf | 分割後の文字列を格納する2次元配列。例:最大100文字の文字列を最大10個格納可能とする場合 -> cahr[10][100] |
rowlen | bufの配列要素数。例の場合は10 |
collen | buf1要素あたりのの最大文字数。例の場合は100 |
str | 分割対象の文字列 |
delim | 区切り文字(列) |
D_EXTERN CmnStringList* CmnString_SplitAsList | ( | CmnStringList * | list, |
const char * | str, | ||
const char * | delim | ||
) |
文字列分割(into CmnDataList)
strをdelimで分割してlistに格納する。
list | 分割後の文字列を格納するリスト。リストの要素はmallocしたchar*となる。 リストのFree時に各要素も合わせてFreeされるため、各要素の個別Freeは不要。 |
str | 分割対象の文字列 |
delim | 区切り文字(列) |
D_EXTERN CmnStringList* CmnString_SplitLine | ( | CmnStringList * | list, |
const char * | str | ||
) |
文字列を改行コード(CRLF/LF/CRの何れか)で分解してlistに格納する。
list | 1行1要素に分解したリスト。空行には""(空文字列)が入る。 |
str | 対象文字列 |
D_EXTERN int CmnString_StartWith | ( | const char * | str, |
const char * | mark | ||
) |
対象文字列が特定文字列で始まっているかチェックする
str | 対象文字列 |
mark | チェックする文字列 |
D_EXTERN char* CmnString_StrCatNew | ( | const char * | left, |
const char * | right | ||
) |
文字列連結(動的メモリ確保)
leftとrightを連結した文字列を生成する。
left | (I) 左側文字列 |
right | (I) 右側文字列 |
D_EXTERN char* CmnString_StrCopyNew | ( | const char * | str | ) |
文字列コピー(動的メモリ確保)
strをコピーした文字列を生成する。
str | (I) 文字列 |
D_EXTERN char* CmnString_StrEol | ( | const char * | str, |
char * | delim | ||
) |
改行コード(End Of Line:CRLF(
) or LF(
) or CR())を検索する。
str | 検索対象の文字列 |
delim | 一番最初に見つかった改行コード( or or )を設定する。3bytes以上のバッファとすること。 |
D_EXTERN char* CmnString_Trim | ( | char * | str | ) |
トリム
文字列の両側のスペースを削除する
str | (I/O) トリム処理対象の文字列 |
D_EXTERN int CmnStringBuffer_Append | ( | CmnStringBuffer * | buf, |
const char * | str | ||
) |
文字列バッファへのデータ追加
文字列バッファの末尾にデータを追加する。
buf | 文字列バッファ |
str | 追加する文字列 |
D_EXTERN CmnStringBuffer* CmnStringBuffer_Create | ( | const char * | str | ) |
文字列バッファ作成
自動領域拡張をする文字列バッファを新規に作成する。
str | 文字列バッファに格納する文字列。NULLを指定した場合は空文字列を設定する。 |
D_EXTERN void CmnStringBuffer_Free | ( | CmnStringBuffer * | buf | ) |
文字列バッファの解放
文字列バッファが不要になった場合、メモリ解放のために必ず本関数を呼び出すこと。
buf | 文字列バッファ |
D_EXTERN int CmnStringBuffer_Set | ( | CmnStringBuffer * | buf, |
const char * | str | ||
) |
文字列バッファへのデータ設定
文字列バッファにデータを設定する。もとのデータは上書かれる。
buf | 文字列バッファ |
str | 設定する文字列 |
D_EXTERN int CmnStringBuffer_SetByCmnDataBuffer | ( | CmnStringBuffer * | buf, |
const CmnDataBuffer * | dat | ||
) |
文字列バッファへのデータ設定(by CmnDataBuffer)
CmnDataBufferのデータを文字列として設定する。もとのbufのデータは上書かれる。
buf | 自動拡張バッファ |
dat | 設定するデータ |
D_EXTERN void CmnStringList_Add | ( | CmnStringList * | list, |
const char * | str | ||
) |
文字列リスト要素追加
文字列リストの末尾に要素を追加する。
引数が不正な場合は何もしない。
また、メモリ確保に失敗した場合は、データがNULLの要素を追加する。
list | (I/O) 要素を追加するリストへのポインタ |
str | (I) 追加する要素(文字列) |
D_EXTERN CmnStringList* CmnStringList_Create | ( | ) |
文字列リスト作成
文字列リストを新規に作成する
D_EXTERN void CmnStringList_Free | ( | CmnStringList * | list | ) |
文字列リスト解放
文字列リストを破棄し、メモリ領域を解放する
list | (I/O) 解放する文字列リストへのポインタ |
D_EXTERN char* CmnStringList_Get | ( | CmnStringList * | list, |
int | index | ||
) |
文字列リスト要素取得
文字列リストから要素(文字列)を取得する
list | (I) 要素を取得するリストへのポインタ |
index | (I) 取得する要素のインデックス(最初の要素を0とする) |