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