ぼるじょあがC/C++の宿題を片づけますYO! 42代目
■ このスレッドは過去ログ倉庫に格納されています
0118デフォルトの名無しさん
2005/04/20(水) 17:15:16//文字列の変換はめんどくさいから漢字一文字分(戻り値は変換済みバイト数)
int sjis2euc(unsigned char * dest, unsigned char * src)
{
unsigned code1 = src[0];
code1 = code1 * 2 - 0xe1;
code1 &= 0x7f;// 1バイトカナの隙間
unsigned code2 = src[1];
code2 -= 0x1f;
if (code2 > 0x7f - 0x1f) {// 0x7fの穴
--code2;
}
if (code2 >= 0x7f) {// 偶数ブロック
code2 -= 0x5e;
++code1;
}
dest[0] = code1 | 0x80;
dest[1] = code2 | 0x80;
return 2;
}
//一バイトカナはこれ(戻り値は上と同じ)
int sjis2eucKana(unsigned char * dest, unsigned char * src)
{
dest[0] = 0x8e;
dest[1] = str[0];
return 2;
}
//後はコードの判断ロジック(暇があったら後でね)
■ このスレッドは過去ログ倉庫に格納されています