cmn-clib(CommonLibraryForC)
C言語共通ライブラリ
 全て データ構造 ファイル 関数 変数 型定義 列挙型 列挙値 マクロ定義
CmnString.h ファイル

文字列系 共通関数 I/Fヘッダファイル [詳解]

#include "cmnclib/Common.h"
#include "cmnclib/CmnData.h"

[ソースコード]

データ構造

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 CmnStringListCmnString_SplitAsList (CmnStringList *list, const char *str, const char *delim)
 文字列分割(into CmnDataList) [詳解]
 
D_EXTERN CmnStringListCmnString_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 CmnStringListCmnStringList_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 CmnStringBufferCmnStringBuffer_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ヘッダファイル。
文字列系の共通関数を使用する場合は、このヘッダファイルを読み込むこと

著者
H.Kumagai
日付
2004-06-05
Revision
1.3

マクロ定義詳解

#define EQUAL   0

文字列一致(strcmp関数用)

型定義詳解

自動領域拡張文字列バッファ

文字列リスト(構造は単方向リストと同じ)

参照
単方向リスト CmnData_List

関数詳解

D_EXTERN int CmnString_EndWith ( const char *  str,
const char *  mark 
)

対象文字列が特定文字列で終わっているかチェックする

引数
str対象文字列
markチェックする文字列
戻り値
strがmarkで終わっている場合は1を、そうでない場合は0を返す。
D_EXTERN int CmnString_IndexOf ( const char *  str,
const char *  mark 
)

strのなかで最初に出現するmarkの位置(先頭文字をゼロとした文字数)を返す。

引数
strベース文字列
mark検索する文字列
戻り値
最初にmarkが出現した位置(先頭文字をゼロとした文字数)を返す。markが出現しなかった場合は-1を返す。
D_EXTERN int CmnString_LastIndexOf ( const char *  str,
const char *  mark 
)

strのなかで最後に出現するmarkの位置(先頭文字をゼロとした文字数)を返す。

引数
strベース文字列
mark検索する文字列
戻り値
最後にmarkが出現した位置(先頭文字をゼロとした文字数)を返す。markが出現しなかった場合は-1を返す。
D_EXTERN char* CmnString_Lpad ( char *  buf,
const char *  str,
char  padch,
size_t  digit 
)

文字列の左側パディング

引数
bufパディング後の文字列を格納するバッファ
str元文字列
padchパディングする文字
digitパディング後何文字にするか
戻り値
bufを返す
D_EXTERN char* CmnString_LTrim ( char *  str)

左側トリム

文字列の左側のスペースを削除する

引数
str(I) トリム処理対象の文字列
戻り値
strへのポインタ
著者
H.Kumagai
覚え書き
この関数は、実際にスペース部分を削除するのではなく、 スペース部分を飛ばしたポインタを生成する。
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) 置換処理後の文字列を格納するバッファ
戻り値
destを返却する。
D_EXTERN char* CmnString_ReplaceNew ( const char *  src,
const char *  befor,
const char *  after 
)

文字列置換(動的メモリ確保)

srcを読み込み、oldをnewに置換した文字列を生成する。

引数
src(I) 元文字列
befor(I) 置換対象文字列
after(I) 置換後文字列
戻り値
置換後文字列へのポインタを返却する。呼び出し元でfreeすること。
D_EXTERN char* CmnString_Rpad ( char *  buf,
const char *  str,
char  padch,
size_t  digit 
)

文字列の右側パディング

引数
bufパディング後の文字列を格納するバッファ
str元文字列
padchパディングする文字
digitパディング後何文字にするか
戻り値
bufを返す
D_EXTERN char* CmnString_RTrim ( char *  str)

右側トリム

文字列の右側のスペースを削除する

引数
str(I/O) トリム処理対象の文字列
戻り値
strへのポインタ
著者
H.Kumagai
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]
rowlenbufの配列要素数。例の場合は10
collenbuf1要素あたりのの最大文字数。例の場合は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区切り文字(列)
戻り値
listを返す。メモリ確保できなかった場合など異常時はNULLを返す。
D_EXTERN CmnStringList* CmnString_SplitLine ( CmnStringList list,
const char *  str 
)

文字列を改行コード(CRLF/LF/CRの何れか)で分解してlistに格納する。

引数
list1行1要素に分解したリスト。空行には""(空文字列)が入る。
str対象文字列
戻り値
listを返す。メモリ確保できなかった場合など異常時はNULLを返す。
D_EXTERN int CmnString_StartWith ( const char *  str,
const char *  mark 
)

対象文字列が特定文字列で始まっているかチェックする

引数
str対象文字列
markチェックする文字列
戻り値
strがmarkで始まっている場合は1を、そうでない場合は0を返す。
D_EXTERN char* CmnString_StrCatNew ( const char *  left,
const char *  right 
)

文字列連結(動的メモリ確保)

leftとrightを連結した文字列を生成する。

引数
left(I) 左側文字列
right(I) 右側文字列
戻り値
連結後文字列へのポインタを返却する。呼び出し元でfreeすること。
D_EXTERN char* CmnString_StrCopyNew ( const char *  str)

文字列コピー(動的メモリ確保)

strをコピーした文字列を生成する。

引数
str(I) 文字列
戻り値
コピーした文字列へのポインタを返却する。呼び出し元でfreeすること。
D_EXTERN char* CmnString_StrEol ( const char *  str,
char *  delim 
)

改行コード(End Of Line:CRLF(
) or LF(
) or CR())を検索する。

引数
str検索対象の文字列
delim一番最初に見つかった改行コード(
or
or )を設定する。3bytes以上のバッファとすること。
戻り値
一番最初に見つかった改行コードの位置。改行コードが見つからなかった場合はNULL。
D_EXTERN char* CmnString_Trim ( char *  str)

トリム

文字列の両側のスペースを削除する

引数
str(I/O) トリム処理対象の文字列
戻り値
strへのポインタ
著者
H.Kumagai
D_EXTERN int CmnStringBuffer_Append ( CmnStringBuffer buf,
const char *  str 
)

文字列バッファへのデータ追加

文字列バッファの末尾にデータを追加する。

引数
buf文字列バッファ
str追加する文字列
戻り値
正常:0, エラー:-1
D_EXTERN CmnStringBuffer* CmnStringBuffer_Create ( const char *  str)

文字列バッファ作成

自動領域拡張をする文字列バッファを新規に作成する。

引数
str文字列バッファに格納する文字列。NULLを指定した場合は空文字列を設定する。
戻り値
作成したバッファへのポインタ。作成に失敗した場合はNULLを返す。
D_EXTERN void CmnStringBuffer_Free ( CmnStringBuffer buf)

文字列バッファの解放

文字列バッファが不要になった場合、メモリ解放のために必ず本関数を呼び出すこと。

引数
buf文字列バッファ
D_EXTERN int CmnStringBuffer_Set ( CmnStringBuffer buf,
const char *  str 
)

文字列バッファへのデータ設定

文字列バッファにデータを設定する。もとのデータは上書かれる。

引数
buf文字列バッファ
str設定する文字列
戻り値
正常:0, エラー:-1
D_EXTERN int CmnStringBuffer_SetByCmnDataBuffer ( CmnStringBuffer buf,
const CmnDataBuffer dat 
)

文字列バッファへのデータ設定(by CmnDataBuffer)

CmnDataBufferのデータを文字列として設定する。もとのbufのデータは上書かれる。

引数
buf自動拡張バッファ
dat設定するデータ
戻り値
正常:0, エラー:-1
D_EXTERN void CmnStringList_Add ( CmnStringList list,
const char *  str 
)

文字列リスト要素追加

文字列リストの末尾に要素を追加する。
引数が不正な場合は何もしない。
また、メモリ確保に失敗した場合は、データがNULLの要素を追加する。

引数
list(I/O) 要素を追加するリストへのポインタ
str(I) 追加する要素(文字列)
著者
H.Kumagai
D_EXTERN CmnStringList* CmnStringList_Create ( )

文字列リスト作成

文字列リストを新規に作成する

戻り値
作成した文字列リストへのポインタ。作成に失敗した場合はNULLを返す。
著者
H.Kumagai
D_EXTERN void CmnStringList_Free ( CmnStringList list)

文字列リスト解放

文字列リストを破棄し、メモリ領域を解放する

引数
list(I/O) 解放する文字列リストへのポインタ
著者
H.Kumagai
D_EXTERN char* CmnStringList_Get ( CmnStringList list,
int  index 
)

文字列リスト要素取得

文字列リストから要素(文字列)を取得する

引数
list(I) 要素を取得するリストへのポインタ
index(I) 取得する要素のインデックス(最初の要素を0とする)
戻り値
取得した文字列へのポインタ(listやindexが不正な場合はNULLを返す)
著者
H.Kumagai