前のページ次のページ上に戻るホーム SophiaFramework 2.2
SFUShiftJIS
Shift_JIS エンコード文字列特有の処理を行うクラスです。
#include <SFUShiftJIS.hpp>
class SFUShiftJIS;
typedef SFUShiftJIS&          SFUShiftJISRef;
typedef SFUShiftJIS*          SFUShiftJISPtr;
typedef SFUShiftJIS**         SFUShiftJISHandle;
typedef const SFUShiftJIS     ConstSFUShiftJIS;
typedef const SFUShiftJIS&    ConstSFUShiftJISRef;
typedef const SFUShiftJIS*    ConstSFUShiftJISPtr;
typedef const SFUShiftJIS**   ConstSFUShiftJISHandle;

解説

Shift_JIS エンコード文字列特有の処理を行うクラスです。 このクラスは静的関数のみをもちます。 カタカナとひらがなの変換や、 全角文字と半角文字の変換などを行うことができます。

引数としてはワイド文字やワイド文字列 (SFUWideString) しか受け取りません。ANSI 文字に対して処理を行う必要がある場合は、 いったんワイド文字に変換した上で、このクラスの関数を使用してください。

メンバ

パブリック関数
public
static
AlphaToFull 半角の英字を全角に変換します。
public
static
AlphaToHalf 全角の英字を半角に変換します。
public
static
DigitToFull 半角の数字を全角に変換します。
public
static
DigitToHalf 全角の数字を半角に変換します。
public
static
HiraganaToKatakana ひらがなを全角カタカナに変換します。
public
static
IsFullAlpha 文字が全角英字であるか判定します。
public
static
IsFullDigit 文字が全角数字であるか判定します。
public
static
IsFullKatakana 文字が全角カタカナであるか判定します。
public
static
IsHalfAlpha 文字が半角英字であるか判定します。
public
static
IsHalfDigit 文字が半角数字であるか判定します。
public
static
IsHalfKatakana 文字が半角カタカナであるか判定します。
public
static
IsHalfSymbol 文字が半角記号であるか判定します。
public
static
IsHiragana 文字がひらがなであるか判定します。
public
static
KatakanaToFull 半角カタカナを全角に変換します。
public
static
KatakanaToHalf 全角カタカナを半角に変換します。
public
static
KatakanaToHiragana 全角カタカナをひらがなに変換します。
public
static
SymbolToFull 半角記号を全角記号に変換します。
public
static
SymbolToHalf 全角記号を半角記号に変換します。
public
static
UInt16ToWChar 比較可能な数値をワイド文字に変換します。
public
static
WCharToUInt16 ワイド文字を比較可能な数値に変換します。

SFUShiftJIS::AlphaToFull
半角の英字を全角に変換します。
[ public, static ]
Void AlphaToFull(
    SFUWideStringPtr pstr   
);

使用例

次の例では、半角の ABC を全角の ABC に変換しています。

SFUWideString str = "ABC";
SFUShiftJIS::AlphaToFull(&str);

参照

SFUShiftJIS::AlphaToHalf


SFUShiftJIS::AlphaToHalf
全角の英字を半角に変換します。
[ public, static ]
Void AlphaToHalf(
    SFUWideStringPtr pstr   
);

使用例

次の例では、全角の XYZ を半角の XYZ に変換しています。

SFUWideString str = "XYZ座標";
SFUShiftJIS::AlphaToHalf(&str);

参照

SFUShiftJIS::AlphaToFull


SFUShiftJIS::DigitToFull
半角の数字を全角に変換します。
[ public, static ]
Void DigitToFull(
    SFUWideStringPtr pstr   
);

使用例

次の例では、半角の 2003 を全角の 2003 に変換しています。

SFUWideString str = "2003年に入社しました。";
SFUShiftJIS::DigitToFull(&str);

参照

SFUShiftJIS::DigitToHalf


SFUShiftJIS::DigitToHalf
全角の数字を半角に変換します。
[ public, static ]
Void DigitToHalf(
    SFUWideStringPtr pstr   
);

使用例

次の例では、全角の 99 を半角の 99 に変換しています。

SFUWideString str = "侵入地点はエリア99です。";
SFUShiftJIS::DigitToHalf(&str);

参照

SFUShiftJIS::DigitToFull


SFUShiftJIS::HiraganaToKatakana
ひらがなを全角カタカナに変換します。
[ public, static ]
Void HiraganaToKatakana(
    SFUWideStringPtr pstr   
);

解説

この関数は、文字列中のひらがなを全角カタカナに変換します。

使用例

次の例では、「むらさき しきぶ」を「ムラサキ シキブ」に変換しています。

SFUWideString str = "むらさき しきぶ";
SFUShiftJIS::HiraganaToKatakana(&str);

参照

SFUShiftJIS::KatakanaToHiragana


SFUShiftJIS::IsFullAlpha
文字が全角英字であるか判定します。
[ public, static ]
Bool IsFullAlpha(
    WChar wch   
);

参照

SFUShiftJIS::IsHalfAlpha


SFUShiftJIS::IsFullDigit
文字が全角数字であるか判定します。
[ public, static ]
Bool IsFullDigit(
    WChar wch   
);

参照

SFUShiftJIS::IsHalfDigit


SFUShiftJIS::IsFullKatakana
文字が全角カタカナであるか判定します。
[ public, static ]
Bool IsFullKatakana(
    WChar wch   
);

解説

この関数は、文字が全角カタカナであるか判定します。 具体的には、文字コードが 0x8340 以上 0x8396 以下であり、 かつ、0x837F でない場合にのみ、TRUE を返します。

参照

SFUShiftJIS::IsHalfKatakana


SFUShiftJIS::IsHalfAlpha
文字が半角英字であるか判定します。
[ public, static ]
Bool IsHalfAlpha(
    WChar wch   
);

参照

SFUShiftJIS::IsFullAlpha


SFUShiftJIS::IsHalfDigit
文字が半角数字であるか判定します。
[ public, static ]
Bool IsHalfDigit(
    WChar wch   
);

参照

SFUShiftJIS::IsFullDigit


SFUShiftJIS::IsHalfKatakana
文字が半角カタカナであるか判定します。
[ public, static ]
Bool IsHalfKatakana(
    WChar wch   
);

解説

この関数は、文字が半角カタカナであるか判定します。 この判定には、半角の句読点、カギ括弧などの記号類も含まれます。 具体的には、 文字コード 0xA1 から 0xDF に対してのみ TRUE を返します。

参照

SFUShiftJIS::IsFullKatakana


SFUShiftJIS::IsHalfSymbol
文字が半角記号であるか判定します。
[ public, static ]
Bool IsHalfSymbol(
    WChar wch   
);

解説

この関数は、文字が半角記号であるか判定します。 具体的には、SFUShiftJIS::SymbolToFull で示されている半角記号のいずれかに一致するときのみ TRUE を返します。


SFUShiftJIS::IsHiragana
文字がひらがなであるか判定します。
[ public, static ]
Bool IsHiragana(
    WChar wch   
);

解説

この関数は、文字がひらがなであるか判定します。 具体的には、文字コードが 0x829F 以上 0x82F1 以下の場合にのみ TRUE を返します。

参照

SFUShiftJIS::IsFullKatakana


SFUShiftJIS::KatakanaToFull
半角カタカナを全角に変換します。
[ public, static ]
Void KatakanaToFull(
    SFUWideStringPtr pstr   
);

解説

この関数は、文字列中の半角カタカナを全角カタカナに変換します。 半角カタカナで濁音や半濁音をつけた文字は、 全角カタカナの1文字に変換されます。 また、半角カタカナの以下の記号類も全角に変換されます。

半角記号 半角文字コード 全角記号 全角文字コード
0xB0 0x815B
0xDE 0x814A
0xDF 0x814B
0xA1 0x8142
0xA2 0x8175
0xA3 0x8176
0xA4 0x8141
0xA5 0x8145

参照

SFUShiftJIS::KatakanaToHalf


SFUShiftJIS::KatakanaToHalf
全角カタカナを半角に変換します。
[ public, static ]
Void KatakanaToHalf(
    SFUWideStringPtr pstr   
);

解説

この関数は、文字列中の全角カタカナを半角カタカナに変換します。 濁点、半濁点をもつカタカナ1文字は、 濁点記号や半濁点記号を伴った2文字に変換されます。

下記の全角カタカナは変換されません。

全角カタカナ 文字コード
?? 0x837F
0x838E
0x8390
0x8391
0x8395
0x8396

また、SFUShiftJIS::KatakanaToFull で一覧されている記号類も半角カタカナに変換されます。

参照

SFUShiftJIS::KatakanaToFull


SFUShiftJIS::KatakanaToHiragana
全角カタカナをひらがなに変換します。
[ public, static ]
Void KatakanaToHiragana(
    SFUWideStringPtr pstr   
);

解説

この関数は、文字列中の全角カタカナをひらがなに変換します。 カタカナの「ヴ」は、ひらがなの「ぶ」に変換されます。

使用例

次の例では、「ヤマダ タロウ」を「やまだ たろう」に変換しています。

SFUWideString str = "ヤマダ タロウ";
SFUShiftJIS::KatakanaToHiragana(&str);

参照

SFUShiftJIS::HiraganaToKatakana


SFUShiftJIS::SymbolToFull
半角記号を全角記号に変換します。
[ public, static ]
Void SymbolToFull(
    SFUWideStringPtr pstr   
);

解説

この関数は、文字列中の半角記号を全角記号に変換します。 変換対象となる記号は以下のとおりです。

半角記号 半角文字コード 全角記号 全角文字コード
! 0x21 0x8149
" 0x22 0x8168
# 0x23 0x8194
$ 0x24 0x8190
% 0x25 0x8193
& 0x26 0x8195
' 0x27 0x8166
( 0x28 0x8169
) 0x29 0x816A
* 0x2A 0x8196
+ 0x2B 0x817B
, 0x2C 0x8143
- 0x2D 0x817C
. 0x2E 0x8144
/ 0x2F 0x815E
: 0x3A 0x8146
; 0x3B 0x8147
< 0x3C 0x8183
= 0x3D 0x8181
> 0x3E 0x8184
? 0x3F 0x8148
@ 0x40 0x8197
[ 0x5B 0x816D
\ 0x5C 0x818F
] 0x5D 0x816E
^ 0x5E 0x814F
_ 0x5F _ 0x8151
` 0x60 0x8165
{ 0x7B 0x816F
| 0x7C 0x8162
} 0x7D 0x8170
~ 0x7E 0x8160

参照

SFUShiftJIS::SymbolToHalf


SFUShiftJIS::SymbolToHalf
全角記号を半角記号に変換します。
[ public, static ]
Void SymbolToHalf(
    SFUWideStringPtr pstr   
);

解説

この関数は、文字列中の全角記号を半角記号に変換します。 変換対象となる記号は、 SFUShiftJIS::SymbolToFull の一覧表に記載されている記号です。

参照

SFUShiftJIS::SymbolToFull


SFUShiftJIS::UInt16ToWChar
比較可能な数値をワイド文字に変換します。
[ public, static ]
WChar UInt16ToWChar(
    UInt16 n   
);

解説

この関数は SFUShiftJIS::WCharToUInt16 の逆変換を行います。

参照

SFUShiftJIS::WCharToUInt16


SFUShiftJIS::WCharToUInt16
ワイド文字を比較可能な数値に変換します。
[ public, static ]
UInt16 WCharToUInt16(
    WChar wch   
);

解説

BREW API を使用して Shift_JIS 文字をワイド文字に変換した場合、 WChar の値は、文字種によってエンディアンが逆になり、 連続した文字コードに対する数値比較ができません。 この関数は、エンディアンが逆になる文字種に対して、 エンディアンをスワップすることで、 すべての WChar 文字を比較可能な数値に変換します。

具体的には、0xFF 以下の WChar 文字に対しては、その値をそのまま返し、 それ以外の WChar 文字に対しては、エンディアンを逆にして返します。

参照

SFUShiftJIS::UInt16ToWChar