c言語超初心者です。
課題で文字コードを変換するプログラミングを書けと言われました。
UnicodeからSJISに変換したいのですが、どこから手をつけたらいいか全くわかりません。大まかな全体の流れとヒントがほしいです。
追記
与えられた変更式は以下の通りです
ぁ〜み(0x3041〜0x307F)の範囲では
1バイト =- 0xAE
2バイト =- 0xA2
至らないとこが多々あるにも関わらず丁寧に回答してくださりありがとうございます。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答7件
0
担当講師にそのようにお願いしたほうが宜しいのではないでしょうか.
投稿2019/05/08 07:41
総合スコア13168
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Unicode から Shift-JIS にするには、変換表(Unicode のコード +Uxxxx が Shift-JIS のコード ???? になる、という表)を用意することになるのですが……
Shift-JIS(JIS X 0213 附属書1 による指定・Shift_JIS-2004)では11391文字の定義がありますから、11391 × 2(UTF-16 の標準面で表現できるのでサロゲートの考慮は不要)で22KB以上の「表」を構築する必要があります。
※実際には変換が一意に定まる文字集合もあるので、表を作らねばならないのはそこまではありませんが
力業でも 22KB の表を作る、ってのは無理がありますねえ……
何か他に条件はないのでしょうか。
ちなみに単に「Unicode」とした場合、文字集合のことを指すので、文字符号化が何かによって処理が違ってきます。
※UTF-8、UTF-16、UTF-32 など
場合によっては入力がどれに当たるかを判別する必要があるのかも?
追記:Windows の中では Unicodeと書いた場合は UTF-16LE を指します(Windows のネイティブ文字サポート)。ややこしいことに。
投稿2019/05/08 07:54
編集2019/05/08 08:03総合スコア13703
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/08 09:38
2019/05/08 11:57
2019/05/09 00:10
2019/05/14 12:43
0
たぶん、こんな流れかと。
- 「文字コード」とは何かを理解する
- 「文字コードの変換」とは何かを理解する
- Unicodeのコードテーブルを入手する
- SJISのコードテーブルを入手する
- 与えられた範囲(大小英数字、ひらがな、カタカナ)のUnicodeでのコードを確認する
- 同じくSJISでのコードを確認する
- 与えられた変更式の意味を考える(なぜこれで変換できるのか)
- フローチャートを作成する
どこでつまずいていますか?
投稿2019/05/14 08:25
総合スコア1240
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/14 08:56
2019/05/14 09:05
2019/05/14 09:11
2019/05/14 12:33
2019/05/14 13:20
2019/05/15 23:59
0
C
1/* Windows 10, Visual C++ 2019 */ 2 3#include <locale.h> // setlocale 4#include <stdio.h> // puts 5#include <stdlib.h> // wcstombs 6 7int main() { 8 const wchar_t* unicode = L"こんにちは、世界"; 9 char shiftjis[256]; 10 setlocale(LC_CTYPE, "japanese"); 11 wcstombs(shiftjis, unicode, 256); 12 puts(shiftjis); 13 return 0; 14}
投稿2019/05/08 09:09
総合スコア16612
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。