これは宿題です。コードだけの議論、進め方に関する高レベルの提案を探しているわけではありません。
私は現在、ファイル内の UTF-16 文字を出力ファイル内の UTF-32 に、またはその逆に変換する課題に取り組んでいます。割り当ては、10 ビット未満の文字のみを含むファイルを処理するための最初のステップとして示されていますが、私は困惑しています。これは私たちの最初の課題であり、C++ を使用したことはありますが、C を実際に使用したことはありません。
私はそのような変換 (S.2.1) に関する RFC を読んでいて、かなりよく理解しているように感じます。UTF-32 文字は、実際にはその構成を定義する 6 ビットが先行する 10 ビットであることを理解しています (110110 は 16 ビットの最初のペアを示し、110111 は「32」の 2 番目のペアを示すと思います)。UTF-16 文字は 6 つの先行 0 で始まりますか?
それとも、UTF-16 文字は 10 ビット未満であり、10 ビット文字にヒットすると、UTF-32 ビット文字に遭遇したことがわかりますか?
私の本当の質問は、8、16などの場合に「10ビット文字」が何を意味するのかということだと思います。しかし、私が言及したことに対する洞察は素晴らしいでしょう!