![]() ![]() ![]()
|
SophiaFramework 2.1 |
#include <SFUWideString.hpp>
class SFUWideString;
typedef SFUWideString& SFUWideStringRef; typedef SFUWideString* SFUWideStringPtr; typedef SFUWideString** SFUWideStringHandle; typedef const SFUWideString ConstSFUWideString; typedef const SFUWideString& ConstSFUWideStringRef; typedef const SFUWideString* ConstSFUWideStringPtr; typedef const SFUWideString** ConstSFUWideStringHandle;
SFUWideString はWChar の文字列を表すクラスです。
| コンストラクタ/デストラクタ | ||
|---|---|---|
| public |
SFUWideString | SFUWideString クラスのコンストラクタです。 |
| public |
~SFUWideString | SFUWideString クラスのデストラクタです。 |
| パブリック関数 | ||
|---|---|---|
| public |
BeginWith | 文字列の先頭に指定された文字列があるか判定します。 |
| public |
Clone | 文字列バッファをコピーして返します。 |
| public |
Compare | 文字列を比較して大小関係を判定します。 |
| public |
Empty | 文字列の長さが 0 であるか判定します。 |
| public |
EndWith | 文字列の末尾に指定された文字列があるか判定します。 |
| public |
Equal | 文字列が等しいか判定します。 |
| public static |
Format | 書式に従って文字列を作成します。 |
| public static |
FormatV | 書式に従って文字列を作成します。 |
| public |
GetRaw | 文字列の内部バッファを返します。 |
| public |
IndexOf | 文字列を先頭から検索してインデックスを返します。 |
| public |
LastIndexOf | 文字列を末尾から検索してインデックスを返します。 |
| public |
Length | 文字列の長さを返します。 |
| public |
Replace | 文字列を置換します。 |
| public |
Rotate | 文字列を回転します。 |
| public |
Substring | 部分文字列を返します。 |
| public |
ToLower | 文字列を小文字に変換します。 |
| public |
ToUpper | 文字列を大文字に変換します。 |
| public |
Trim | 文字列の両端から空白や任意の文字を削除します。 |
| public |
operator * | 文字列をリピートします。 |
| public |
operator ConstWCharPtr | ConstWCharPtr にキャストします。 |
| public |
operator+ | 文字列を連結します。 |
| public |
operator- | 末尾から文字列を削除します。 |
| public |
operator< | 文字列の大小を比較します。 |
| public |
operator= | 文字列を代入します。 |
| public |
operator== | 文字列が等しいか判定します。 |
| public |
operator> | 文字列の大小を比較します。 |
[ public ] SFUWideString(Void);
[ public ]
SFUWideString(
ConstSFUWideStringRef astr // コピー元の AChar 文字列
);
[ public ]
SFUWideString(
ConstSFUAnsiStringRef wstr // コピー元の WChar 文字列
);
[ public ]
SFUWideString(
ConstWCharPtr pach // コピー元の AChar ポインタ
);
[ public ]
SFUWideString(
ConstACharPtr pwch // コピー元の WChar ポインタ
);
[ public ]
SFUWideString(
AChar ach // AChar 文字
);
[ public ]
SFUWideString(
WChar wch // WChar 文字
);
[ public ]
SFUWideString(
VoidPtr ptr // バッファ ポインタ
UInt32 size // バッファのバイト数
);
SFUWideString のコンストラクタに SFUAnsiString または SFUWideString を指定すると、 その文字列をコピーしてオブジェクトを構築します。
AChar や WChar のポインタを指定すると、NULL 終端文字列と解釈してコピーします。
AChar や WChar を指定すると、その 1 文字と NULL 終端だけを含むオブジェクトを構築します。
[ public, virtual ] ~SFUWideString(Void);
SFUWideString オブジェクトを解放します。 内部の文字列バッファは解放されます。
[ public, const ] Bool BeginWith( ConstSFUWideStringRef string );
文字列の先頭に指定された文字列があれば TRUE を返します。 そうでなければ FALSE を返します。
SFUAnsiString の文字列バッファをコピーして WChar ポインタとして返します。 返されるポインタは FREE 関数により解放してください。
flag に FALSE を指定すると、文字列バッファが NULL の場合は NULL を返しますが、 flag に TRUE を指定すると、文字列バッファが NULL の場合でも空文字列を返します。
[ public, const ] SInt32 Compare( ConstSFUWideStringRef string // 比較する文字列 Bool r1 = TRUE // 大小文字を区別するか );
2 つの文字列を辞書順に比較し、 この文字列が string より小さければ負の値を返し、 この文字列が string に等しければ 0 を返し、 この文字列が string より大きければ正の値を返します。
[ public, const ] Bool Empty(Void);
文字列の長さが 0 であれば TRUE を返し、 そうでなければ FALSE を返します。
[ public, const ] Bool EndWith( ConstSFUWideStringRef string );
文字列の末尾に指定された文字列があれば TRUE を返します。 そうでなければ FALSE を返します。
[ public, const ] Bool Equal( ConstSFUWideStringRef string // 比較対象の文字列 Bool case = TRUE // 大小文字を区別するか );
[ public, static ] SFUWideString Format( ConstACharPtr format // 書式を表す文字列 ... // データ );
書式に従って文字列を作成して返します。 書式は C 言語の printf 関数とほぼ同じですが、 浮動小数点数のための書式は使用できません。
SIntN hour = 13;
SIntN minute = 30;
SFUWideString str = SFUWideString::Format("%d時%d分", hour, minute);
[ public, static ] SFUWideString FormatV( ConstACharPtr format // 書式を表す文字列 va_list arg // データ );
書式に従って文字列を作成して返します。 書式は C 言語の printf 関数とほぼ同じですが、 浮動小数点数のための書式は使用できません。
[ public, const ] WCharPtr GetRaw(Void);
GetRaw は、文字列の内部バッファを返します。 このバッファを直接操作することで柔軟な文字列操作が可能となります。 返される内部バッファは NULL 終端文字列として処理してください。 終端の NULL 文字を超えてアクセスしてはいけません。
また、内部バッファが NULL の場合もあり得ることに注意してください。 NULL ポインタに対する読み書きはできませんので、 この関数の戻り値が NULL でないか必ず確認するようにしてください。
[ public, const ] SInt32 IndexOf( ConstSFUWideStringRef string // 検索する文字列 SInt32 start = 0 // 検索開始位置 );
文字列を先頭から末尾に向かって検索し、最初に見つかった位置のインデックスを返します。 検索開始位置を指定することで、先頭以外の位置から検索することもできます。
[ public, const ] SInt32 LastIndexOf( ConstSFUWideStringRef string // 検索する文字列 );
[ public, const ] SInt32 LastIndexOf( ConstSFUWideStringRef string // 検索する文字列 SInt32 start = 0 // 検索開始インデックス );
検索に成功すると、見つかった位置のインデックスが返されます。 検索に失敗すると -1 が返されます。
文字列を末尾から先頭に向かって検索し、 最初に見つかった位置のインデックスを返します。 検索開始位置を指定することで、末尾以外の位置から検索することもできます。
[ public, const ] SInt32 Length(Void);
[ public, const ] SFUWideString Replace( ConstSFUWideStringRef from // 置換元の文字列 ConstSFUWideStringRef to // 置換先の文字列 );
置換した結果の文字列を返します。
自分自身を返します。
count に正の値を指定すると右に回転します。 count に負の値を指定すると左に回転します。
この関数は文字列オブジェクトに直接作用します。 変換元の文字列を保持したい場合は、 あらかじめコピーしておく必要があります。
[ public, const ] SFUWideString Substring( SInt32 begin // 開始インデックス (この位置を含む) SInt32 end // 終了インデックス (この位置を含まない) );
インデックス begin からインデックス end - 1 までの部分文字列を返します。 したがって、返される文字列の長さは end - begin になります。
begin が 0 以上かつ文字列の長さ未満でない場合、 end が 0 以上かつ文字列の長さ以下でない場合、 あるいは、begin が end よりも大きい場合は、 空文字列を返します。
SFUWideString str1("German");
SFUWideString str2 = str1.Substring(1, 5); // str2 = "erma" になります。
[ public ] Void ToLower(Void);
自分自身を返します。
この関数は文字列オブジェクトに直接作用します。 変換元の文字列を保持したい場合は、 あらかじめコピーしておく必要があります。
[ public ] Void ToUpper(Void);
自分自身を返します。
この関数は文字列オブジェクトに直接作用します。 変換元の文字列を保持したい場合は、 あらかじめコピーしておく必要があります。
[ public, const ] SFUWideString Trim(Void);
[ public, const ] SFUWideString Trim( ConstSFUWideStringRef chars // 削除する文字 );
Trim() 関数は文字列の両端にある文字を削除して返します。 元の文字列は変更されません。
引数を指定しない場合は、文字列の両端にある空白 (スペース、タブ、垂直タブ、改行、復帰、フォームフィード) が削除されます。
Trim() 関数に引数を指定した場合は、 その文字列の各文字を両端から削除します。
SFUWideString str1("\\t delicious geek ");
SFUWideString str2 = str1.Trim(); // str2 = "delicious geek" になります。
SFUWideString str3 = str2.Trim("adek"); // str3 = "licious g" になります。
[ public ] SFUWideStringRef operator=( ConstSFUWideStringRef string );
自分自身を返します。
[ public, const ] operator ConstWCharPtr(Void);
このキャスト演算子は、文字列バッファが NULL でなければそのポインタを返し、 文字列バッファが NULL であれば空文字列へのポインタを返します。 したがって、NULL ポインタが返されることはありません。
[ public, friend ] Bool operator==( ConstSFUWideStringRef string1 ConstSFUWideStringRef string2 );
[ public, friend ] Bool operator==( ConstSFUWideStringRef string1 ConstWCharPtr string2 );
[ public, friend ] Bool operator!=( ConstSFUWideStringRef string1 ConstSFUWideStringRef string2 );
[ public, friend ] Bool operator!=( ConstSFUWideStringRef string1 ConstWCharPtr string2 );
[ public, friend ] Bool operator>( ConstSFUWideStringRef string1 ConstSFUWideStringRef string2 );
[ public, friend ] Bool operator>=( ConstSFUWideStringRef string1 ConstSFUWideStringRef string2 );
[ public, friend ] Bool operator<( ConstSFUWideStringRef string1 ConstSFUWideStringRef string2 );
[ public, friend ] Bool operator<=( ConstSFUWideStringRef string1 ConstSFUWideStringRef string2 );
[ public, friend ] SFUWideString operator-( ConstSFUWideStringRef string1 // 削除対象の文字列 ConstSFUWideStringRef string2 // 末尾から削除する文字列 );
[ public ] ConstSFUWideStringRef operator-=( ConstSFUWideStringRef string // 末尾から削除する文字列 );
string1 の末尾に string2 がある場合、 string1 から末尾の string2 を削除した文字列を返します。 string2 が末尾に存在しない場合は何もせずに string1 をコピーして返します。
SFUWideString str1("Goodbye World");
SFUWideString str2(" World");
SFUWideString str3 = str1 - str2; // str3 = "Goodbye" になります。
[ public, friend ] SFUWideString operator *( ConstSFUWideStringRef string // リピートする文字列 SInt32 count // リピートする数 );
[ public ] ConstSFUWideStringRef operator *=( SInt32 count // リピートする数 );
次の例では # を 8 個連結した文字列を作成しています。
SFUAnsiStringb str("#");
str *= 8;
[ public, friend ] SFUWideString operator+( ConstSFUWideStringRef string1 ConstSFUWideStringRef string2 );
[ public ] ConstSFUWideStringRef operator+=( ConstSFUWideStringRef string );
| Copyright(C) 2003 Sophia Cradle Inc., All Rights Reserved. |
![]() ![]() ![]()
|