TNB Library
|
文字列管理テンプレート [詳解]
#include <TnbStr.h>
公開メンバ関数 | |
iterator | begin (void) |
[反復] 先頭iterator. [詳解] | |
const_iterator | begin (void) const |
[反復] 先頭const_iterator. [詳解] | |
int | Compare (const TYP *lpszSubject) const |
[確認] 文字列比較 [詳解] | |
int | CompareByOption (const TYP *lpszSubject, DWORD dwCmpFlags) const |
[確認] 文字列比較(比較オプション指定) [詳解] | |
int | CompareNoCase (const TYP *lpszSubject) const |
[確認] 文字列比較(大小区別無く比較) [詳解] | |
CStrT (const char *lpText) | |
代入コンストラクタ(ASCII/SJIS用) [詳解] | |
CStrT (const CStrT &str) | |
コピーコンストラクタ [詳解] | |
CStrT (const WCHAR *lpText) | |
代入コンストラクタ(UNICODE用) [詳解] | |
CStrT (void) | |
コンストラクタ [詳解] | |
int | Delete (INDEX index, size_t iLen=1) |
[操作] 文字削除. [詳解] | |
void | DeleteLast (void) |
[操作] 最終文字削除. [詳解] | |
void | Empty (void) |
[削除] 空化 [詳解] | |
iterator | end (void) |
[反復] 最後iterator. [詳解] | |
const_iterator | end (void) const |
[反復] 最後const_iterator. [詳解] | |
INT_PTR | Find (const TYP *lpsz, INDEX iFromIndex=0) const |
[確認] 検索. [詳解] | |
INT_PTR | Find (TYP t, INDEX iFromIndex=0) const |
[確認] 検索. [詳解] | |
CStrT | FindCut (TYP c, CStrT *_pstrRest=NULL) const |
[作成] 切り分け [詳解] | |
INT_PTR | FindOneOf (const TYP *lpsz, INDEX iFromIndex=0) const |
[確認] 検索. [詳解] | |
void | Format (const TYP *lpszFormat,...) |
[代入] 書式付き文字列代入. [詳解] | |
void | FormatV (const TYP *lpszFormat, va_list V) |
[代入] 書式付き文字列代入. [詳解] | |
TYP | GetAt (INDEX index) const |
[取得] 一文字取得 [詳解] | |
TYP * | GetBuffer (size_t iLength=0) |
[操作] 書き込みバッファ要求. [詳解] | |
size_t | GetLength (void) const |
[取得] 文字列長 [詳解] | |
void | Insert (INDEX index, const TYP *lpText) |
[挿入] 文字列挿入 [詳解] | |
iterator | insert (iterator ite, const TYP &t=TYP()) |
[反復] 挿入 [詳解] | |
void | InsertAt (INDEX index, TYP c) |
[挿入] 文字挿入 [詳解] | |
bool | IsEmpty (void) const |
[確認] 空チェック [詳解] | |
bool | IsEqual (const TYP *lpszSubject) const |
[確認] 文字列比較 [詳解] | |
bool | IsEqualNoCase (const TYP *lpszSubject) const |
[確認] 文字列比較(大小区別無く比較) [詳解] | |
CStrT | Left (size_t iSize) const |
[作成] 範囲取得. [詳解] | |
void | MakeLower (void) |
[変換] 小文字化 [詳解] | |
void | MakeUpper (void) |
[変換] 大文字化 [詳解] | |
CStrT | Mid (INDEX iOffset, size_t iSize=INVALID_SIZE) const |
[作成] 範囲取得. [詳解] | |
operator const TYP * (void) const | |
[取得] 参照オペレータ. [詳解] | |
bool | operator!= (const TYP *lpszSubject) const |
[確認] 文字列比較 [詳解] | |
CStrT & | operator+= (const char *lpText) |
[追加] 追加オペレータ(ASCII/SJIS用) [詳解] | |
CStrT & | operator+= (const WCHAR *lpText) |
[追加] 追加オペレータ(UNICODE用) [詳解] | |
CStrT & | operator+= (TYP t) |
[追加] 追加オペレータ. [詳解] | |
int | operator- (const TYP *lpszSubject) const |
[確認] 文字列比較. [詳解] | |
bool | operator< (const TYP *lpszSubject) const |
[確認] 文字列比較 [詳解] | |
bool | operator<= (const TYP *lpszSubject) const |
[確認] 文字列比較 [詳解] | |
CStrT & | operator= (const char *lpText) |
[代入] 代入(ASCII/SJIS用) [詳解] | |
CStrT & | operator= (const CStrT &other) |
[代入] コピーオペレータ [詳解] | |
CStrT & | operator= (const WCHAR *lpText) |
[代入] 代入(UNICODE用) [詳解] | |
bool | operator== (const TYP *lpszSubject) const |
[確認] 文字列比較 [詳解] | |
bool | operator> (const TYP *lpszSubject) const |
[確認] 文字列比較 [詳解] | |
bool | operator>= (const TYP *lpszSubject) const |
[確認] 文字列比較 [詳解] | |
void | push_back (TYP t) |
[反復] 最後に追加 [詳解] | |
void | push_front (TYP t) |
[反復] 先頭に挿入 [詳解] | |
const TYP * | ReferBuffer (void) const |
[取得] バッファ参照. [詳解] | |
void | ReleaseBuffer (void) |
[操作] 割り当てたバッファを開放. [詳解] | |
int | Remove (TYP t) |
[処理] 文字削除. [詳解] | |
int | Replace (const TYP *lpszOld, const TYP *lpszNew) |
[処理] 文字置換. [詳解] | |
int | Replace (const TYP *lpszOld, TYP tNew) |
[処理] 文字置換. [詳解] | |
int | Replace (TYP tOld, TYP tNew) |
[処理] 文字置換. [詳解] | |
INT_PTR | ReverseFind (const TYP *lpsz) const |
[確認] 検索(後ろから) [詳解] | |
INT_PTR | ReverseFind (TYP t) const |
[確認] 検索(後ろから) [詳解] | |
INT_PTR | ReverseFindOneOf (const TYP *lpsz) const |
[確認] 検索(後ろから) [詳解] | |
CStrT | Right (INT_PTR iSize) const |
[作成] 範囲取得. [詳解] | |
CStrT | Sandwich (const TYP *lpszBefore, const TYP *lpszAfter) const |
[作成] 前後連結. [詳解] | |
void | SetAt (INDEX index, TYP t) |
[操作] 一文字置き換え [詳解] | |
CStrT & | SetFromLeft (const TYP *lpText, size_t iLen) |
[代入] 文字数制限代入. [詳解] | |
double | ToDouble (INDEX iOffset=0) const |
[取得] 数値(double)へ変換 [詳解] | |
DWORD | ToDword (INDEX iOffset=0, int iBase=10) const |
[取得] 数値(DWORD)へ変換 [詳解] | |
int | ToInt (INDEX iOffset=0, int iBase=10) const |
[取得] 数値(int)へ変換 [詳解] | |
LONGLONG | ToLonglong (INDEX iOffset=0) const |
[取得] 数値(LONGLONG)へ変換 [詳解] | |
CStrT & | Trim (const TYP *lpsz) |
[処理] 両端から文字をトリム. [詳解] | |
CStrT & | Trim (TYP t=' ') |
[処理] 両端から文字をトリム. [詳解] | |
CStrT & | TrimLeft (const TYP *lpsz) |
[処理] 先頭から文字をトリム. [詳解] | |
CStrT & | TrimLeft (TYP t=' ') |
[処理] 先頭から文字をトリム. [詳解] | |
CStrT & | TrimRight (const TYP *lpsz) |
[処理] 末尾から文字をトリム. [詳解] | |
CStrT & | TrimRight (TYP t=' ') |
[処理] 末尾から文字をトリム. [詳解] | |
~CStrT (void) | |
デストラクタ [詳解] | |
静的公開メンバ関数 | |
static CStrT | DwordToString (DWORD value) |
[設定] DWORD型文字列化. [詳解] | |
static CStrT | Fmt (const TYP *lpszFormat,...) |
[作成] 書式付き文字列作成 [詳解] | |
template<typename ITE > | |
static CStrT | FromIterator (ITE is, ITE ie=ITE(), size_t max=INVALID_SIZE) |
[代入] イテレータ代入. [詳解] | |
static CStrT | FromWindowText (CWnd *pcWnd) |
[代入] WindowText代入. [詳解] | |
static CStrT | FromWindowText (HWND hWnd) |
[代入] WindowText代入. [詳解] | |
static CStrT | IntToString (int value) |
[設定] int型文字列化. [詳解] | |
static CStrT | Lineup (const TYP *lpsz, int iSize) |
[作成] 指定文字を並べた文字列作成 [詳解] | |
static CStrT | Lineup (TYP t, size_t length) |
[作成] 指定文字を並べた文字列作成 [詳解] | |
static CStrT | ToHexString (DWORD value, size_t width) |
[設定] DWORD型 HEX 文字列化(0パディング付き). [詳解] | |
文字列管理テンプレート
複製、成形、保管が容易に出来る文字列管理クラスです。
反復子
取得が可能です。 SJIS を扱っている場合、2バイト文字が考慮されませんので注意してください。const_iterator begin | ( | void | ) | const |
int Compare | ( | const TYP * | lpszSubject | ) | const |
int CompareByOption | ( | const TYP * | lpszSubject, |
DWORD | dwCmpFlags | ||
) | const |
[確認] 文字列比較(比較オプション指定)
lpszSubject | 比較対照文字列 |
dwCmpFlags | 比較オプション(以下の値の論理和) NORM_IGNORECASE 大文字/小文字を区別しない NORM_IGNOREKANATYPE ひらがな/カタカナを区別しない NORM_IGNORENONSPACE 場所を取らない文字を区別しない NORM_IGNORESYMBOLS 記号を無視する NORM_IGNOREWIDTH 1バイト文字とそれと同じ2バイト文字を区別しない SORT_STRINGSORT 句読点を記号として扱う |
0 | 自分は lpszSubjectと同じ |
1以上 | 自分は lpszSubject より大きい |
0未満 | 自分は lpszSubject より小さい |
int CompareNoCase | ( | const TYP * | lpszSubject | ) | const |
int Delete | ( | INDEX | index, |
size_t | iLen = 1 |
||
) |
|
static |
const_iterator end | ( | void | ) | const |
INT_PTR Find | ( | const TYP * | lpsz, |
INDEX | iFromIndex = 0 |
||
) | const |
INT_PTR Find | ( | TYP | t, |
INDEX | iFromIndex = 0 |
||
) | const |
INT_PTR FindOneOf | ( | const TYP * | lpsz, |
INDEX | iFromIndex = 0 |
||
) | const |
|
static |
void Format | ( | const TYP * | lpszFormat, |
... | |||
) |
void FormatV | ( | const TYP * | lpszFormat, |
va_list | V | ||
) |
[代入] 書式付き文字列代入.
lpszFormat | 書式指定文字列 |
V | VA-LIST |
|
static |
|
static |
TYP GetAt | ( | INDEX | index | ) | const |
TYP * GetBuffer | ( | size_t | iLength = 0 | ) |
[操作] 書き込みバッファ要求.
必要サイズの書き込んでもよいバッファを返します。
CStr str; DWORD dwRc = GetModuleFileName(NULL, str.GetBuffer(MAX_PATH), MAX_PATH); str.ReleaseBuffer(); int p1 = str.ReverseFind('\'); |
iLength | 必要な長さ。省略なら現在の長さ |
void Insert | ( | INDEX | index, |
const TYP * | lpText | ||
) |
|
static |
bool IsEqual | ( | const TYP * | lpszSubject | ) | const |
bool IsEqualNoCase | ( | const TYP * | lpszSubject | ) | const |
|
static |
|
static |
CStrT Mid | ( | INDEX | iOffset, |
size_t | iSize = INVALID_SIZE |
||
) | const |
bool operator!= | ( | const TYP * | lpszSubject | ) | const |
CStrT & operator+= | ( | const char * | lpText | ) |
CStrT & operator+= | ( | const WCHAR * | lpText | ) |
CStrT & operator+= | ( | TYP | t | ) |
int operator- | ( | const TYP * | lpszSubject | ) | const |
bool operator< | ( | const TYP * | lpszSubject | ) | const |
bool operator<= | ( | const TYP * | lpszSubject | ) | const |
CStrT & operator= | ( | const char * | lpText | ) |
CStrT & operator= | ( | const WCHAR * | lpText | ) |
bool operator== | ( | const TYP * | lpszSubject | ) | const |
bool operator> | ( | const TYP * | lpszSubject | ) | const |
bool operator>= | ( | const TYP * | lpszSubject | ) | const |
void ReleaseBuffer | ( | void | ) |
[操作] 割り当てたバッファを開放.
GetBuffer() で割り当てたバッファを開放し、文字列を本クラスに取り込みます。
int Replace | ( | const TYP * | lpszOld, |
const TYP * | lpszNew | ||
) |
int Replace | ( | const TYP * | lpszOld, |
TYP | tNew | ||
) |
int Replace | ( | TYP | tOld, |
TYP | tNew | ||
) |
INT_PTR ReverseFind | ( | const TYP * | lpsz | ) | const |
INT_PTR ReverseFind | ( | TYP | t | ) | const |
INT_PTR ReverseFindOneOf | ( | const TYP * | lpsz | ) | const |
CStrT Right | ( | INT_PTR | iSize | ) | const |
CStrT Sandwich | ( | const TYP * | lpszBefore, |
const TYP * | lpszAfter | ||
) | const |
void SetAt | ( | INDEX | index, |
TYP | t | ||
) |
CStrT & SetFromLeft | ( | const TYP * | lpText, |
size_t | iLen | ||
) |
double ToDouble | ( | INDEX | iOffset = 0 | ) | const |
DWORD ToDword | ( | INDEX | iOffset = 0 , |
int | iBase = 10 |
||
) | const |
|
static |
int ToInt | ( | INDEX | iOffset = 0 , |
int | iBase = 10 |
||
) | const |
LONGLONG ToLonglong | ( | INDEX | iOffset = 0 | ) | const |
CStrT & Trim | ( | const TYP * | lpsz | ) |
CStrT & Trim | ( | TYP | t = ' ' | ) |
CStrT & TrimLeft | ( | const TYP * | lpsz | ) |
CStrT & TrimLeft | ( | TYP | t = ' ' | ) |
CStrT & TrimRight | ( | const TYP * | lpsz | ) |