|
文字列中のある1バイトについて、1バイト文字か2バイト文字の一部であるかを判定する。
//*********************************************************
// 文字列 str の str[nPos] について、
// 0 …… 1バイト文字
// 1 …… 2バイト文字の一部(第1バイト)
// 2 …… 2バイト文字の一部(第2バイト)
// のいずれかを返す。
//*********************************************************
int isJMS( const char *str, int nPos )
{
int i;
int state; // { 0, 1, 2 }
// 0 = 1バイト文字
// 1 = 2バイト文字の第1バイト
// 2 = 2バイト文字の第2バイト
state = 0;
for( i = 0; str[i] != '\0'; i++ )
{
if ( ( state == 0 ) && ( jms1( str[i] ) ) ) state = 1; // 0 -> 1
else if ( ( state == 1 ) && ( jms2( str[i] ) ) ) state = 2; // 1 -> 2
else if ( ( state == 2 ) && ( jms1( str[i] ) ) ) state = 1; // 2 -> 1
else state = 0; // 2 -> 0, その他
// str[nPos] での状態を返す。
if ( i == nPos ) return state;
}
return 0;
}//isJMS
関連 | |
水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp

同人ダウンロード販売|DL.Getchu.com