cmn-clib(CommonLibraryForC)
C言語共通ライブラリ
|
文字列操作 共通関数 [詳解]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cmnclib/Common.h"
#include "cmnclib/CmnString.h"
#include "cmnclib/CmnLog.h"
関数 | |
char * | CmnString_RTrim (char *str) |
右側トリム [詳解] | |
char * | CmnString_LTrim (char *str) |
左側トリム [詳解] | |
char * | CmnString_Trim (char *str) |
トリム [詳解] | |
char * | CmnString_Replace (const char *src, const char *befor, const char *after, char *dest) |
文字列置換 [詳解] | |
char * | CmnString_ReplaceNew (const char *src, const char *befor, const char *after) |
文字列置換(動的メモリ確保) [詳解] | |
char * | CmnString_StrCatNew (const char *left, const char *right) |
文字列連結(動的メモリ確保) [詳解] | |
char * | CmnString_StrCopyNew (const char *str) |
文字列コピー(動的メモリ確保) [詳解] | |
char * | CmnString_StrEol (const char *str, char *delim) |
改行コード(End Of Line:CRLF( ) or LF( ) or CR())を検索する。 [詳解] | |
int | CmnString_Split (char *buf, size_t rowlen, size_t collen, const char *str, const char *delim) |
文字列分割(into配列) [詳解] | |
CmnStringList * | CmnString_SplitAsList (CmnStringList *list, const char *str, const char *delim) |
文字列分割(into CmnDataList) [詳解] | |
CmnStringList * | CmnString_SplitLine (CmnStringList *list, const char *str) |
文字列を改行コード(CRLF/LF/CRの何れか)で分解してlistに格納する。 [詳解] | |
char * | CmnString_Lpad (char *buf, const char *str, char padch, size_t digit) |
文字列の左側パディング [詳解] | |
char * | CmnString_Rpad (char *buf, const char *str, char padch, size_t digit) |
文字列の右側パディング [詳解] | |
int | CmnString_StartWith (const char *str, const char *mark) |
対象文字列が特定文字列で始まっているかチェックする [詳解] | |
int | CmnString_EndWith (const char *str, const char *mark) |
対象文字列が特定文字列で終わっているかチェックする [詳解] | |
int | CmnString_IndexOf (const char *str, const char *mark) |
strのなかで最初に出現するmarkの位置(先頭文字をゼロとした文字数)を返す。 [詳解] | |
int | CmnString_LastIndexOf (const char *str, const char *mark) |
strのなかで最後に出現するmarkの位置(先頭文字をゼロとした文字数)を返す。 [詳解] | |
文字列操作 共通関数
文字列操作系共通関数のうち、特に汎用的な関数郡が実装されている。
int CmnString_EndWith | ( | const char * | str, |
const char * | mark | ||
) |
対象文字列が特定文字列で終わっているかチェックする
str | 対象文字列 |
mark | チェックする文字列 |
int CmnString_IndexOf | ( | const char * | str, |
const char * | mark | ||
) |
strのなかで最初に出現するmarkの位置(先頭文字をゼロとした文字数)を返す。
str | ベース文字列 |
mark | 検索する文字列 |
int CmnString_LastIndexOf | ( | const char * | str, |
const char * | mark | ||
) |
strのなかで最後に出現するmarkの位置(先頭文字をゼロとした文字数)を返す。
str | ベース文字列 |
mark | 検索する文字列 |
char* CmnString_Lpad | ( | char * | buf, |
const char * | str, | ||
char | padch, | ||
size_t | digit | ||
) |
文字列の左側パディング
buf | パディング後の文字列を格納するバッファ |
str | 元文字列 |
padch | パディングする文字 |
digit | パディング後何文字にするか |
char* CmnString_LTrim | ( | char * | str | ) |
左側トリム
文字列の左側のスペースを削除する
str | (I) トリム処理対象の文字列 |
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) 置換処理後の文字列を格納するバッファ |
char* CmnString_ReplaceNew | ( | const char * | src, |
const char * | befor, | ||
const char * | after | ||
) |
文字列置換(動的メモリ確保)
srcを読み込み、oldをnewに置換した文字列を生成する。
src | (I) 元文字列 |
befor | (I) 置換対象文字列 |
after | (I) 置換後文字列 |
char* CmnString_Rpad | ( | char * | buf, |
const char * | str, | ||
char | padch, | ||
size_t | digit | ||
) |
文字列の右側パディング
buf | パディング後の文字列を格納するバッファ |
str | 元文字列 |
padch | パディングする文字 |
digit | パディング後何文字にするか |
char* CmnString_RTrim | ( | char * | str | ) |
右側トリム
文字列の右側のスペースを削除する
str | (I/O) トリム処理対象の文字列 |
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 | 区切り文字(列) |
CmnStringList* CmnString_SplitAsList | ( | CmnStringList * | list, |
const char * | str, | ||
const char * | delim | ||
) |
文字列分割(into CmnDataList)
strをdelimで分割してlistに格納する。
list | 分割後の文字列を格納するリスト。リストの要素はmallocしたchar*となる。 リストのFree時に各要素も合わせてFreeされるため、各要素の個別Freeは不要。 |
str | 分割対象の文字列 |
delim | 区切り文字(列) |
CmnStringList* CmnString_SplitLine | ( | CmnStringList * | list, |
const char * | str | ||
) |
文字列を改行コード(CRLF/LF/CRの何れか)で分解してlistに格納する。
list | 1行1要素に分解したリスト。空行には""(空文字列)が入る。 |
str | 対象文字列 |
int CmnString_StartWith | ( | const char * | str, |
const char * | mark | ||
) |
対象文字列が特定文字列で始まっているかチェックする
str | 対象文字列 |
mark | チェックする文字列 |
char* CmnString_StrCatNew | ( | const char * | left, |
const char * | right | ||
) |
文字列連結(動的メモリ確保)
leftとrightを連結した文字列を生成する。
left | (I) 左側文字列 |
right | (I) 右側文字列 |
char* CmnString_StrCopyNew | ( | const char * | str | ) |
文字列コピー(動的メモリ確保)
strをコピーした文字列を生成する。
str | (I) 文字列 |
char* CmnString_StrEol | ( | const char * | str, |
char * | delim | ||
) |
改行コード(End Of Line:CRLF(
) or LF(
) or CR())を検索する。
str | 検索対象の文字列 |
delim | 一番最初に見つかった改行コード( or or )を設定する。3bytes以上のバッファとすること。 |
char* CmnString_Trim | ( | char * | str | ) |
トリム
文字列の両側のスペースを削除する
str | (I/O) トリム処理対象の文字列 |