char配列に入っているjisコードをshift-jisに変換するプログラムをC++で作成しているのですが、うまくいきません。
http://www.tohoho-web.com/wwwkanji.htm
のプログラムを使わせていただいたのですが、変換が失敗する文字があります。
if (sjis[i] % 2) {
sjis[i] = ((sjis[i] + 1) / 2) + 0x70;
sjis[i + 1] = sjis[i + 1] + 0x1f;
}
else {
sjis[i] = (sjis[i] / 2) + 0x70;
sjis[i + 1] = sjis[i + 1] + 0x7e;
}
if (sjis[i] >= 0xa0) { sjis[i] = sjis[i] + 0x40; }
if (sjis[i + 1] >= 0x7f) { sjis[i + 1] += 1; }
jis 「寺」 0x3B7B → shift-jis 「字」 0x8E9A
jis 「事」 0x3B76 → shift-jis 「歯」 0x8E95
どうすればいいでしょうか?よろしくお願いします。