• ベストアンサー

全ての漢字を取得する方法

全てまではいかなくとも、なるだけ多くの漢字を取得して 配列などに格納したいのですが、取得する方法を教えてもらいたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • yama5140
  • ベストアンサー率54% (136/250)
回答No.2

>なるだけ多くの漢字を取得して配列などに格納したいのですが、取得する方法を教えてもらいたいです。  はずしている可能性大ですが、↓こんなイメージでしょうか。 #include <stdio.h> void main() { int iA, iB, nn = 0; char cStr[ 1024 ]; iA = 0x88; for( iB = 0x9F; iB < 0xFC; iB++ ){ cStr[ nn++ ] = iA; cStr[ nn++ ] = iB; cStr[ nn ] = '\0'; // for 構文の直下でも・・ } printf( "%s\n", cStr ); }

takagoo100
質問者

お礼

ご回答ありがとうございます。 そのやり方でできました。ありがとうございます。 そこでもう一つ質問があるのですが、 iB < 0xFC を iB < 0xFE などと増やして試してみたら 「蔭・」が後ろに付け加わったのですが、 「・」をプログラム的に識別する方法を教えてもらえないでしょうか? 例えば、ここにある http://www.tohoho-web.com/ex/draft/code.htm 全ての文字をプログラムで取得する際に「・」が配列に加わるのを除去したいのです。

その他の回答 (5)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.6

「中国や韓国独自の漢字」は漢字だから問題ないとも言えますね>#5. 異体字とかはどうするんだろう....

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.5

#4ですが、Unicodeだけだと、中国や韓国独自の漢字も混じってしまうので、 JIS X 0213:2004で定義されている文字のうち、漢字のみをUnicodeに変換するのがいいかも。 http://ja.wikipedia.org/wiki/JIS_X_0213 http://x0213.org/codetable/ まあ、ここまで本気でやる必要があるかどうかは用途によるでしょうが。

takagoo100
質問者

お礼

ご回答ありがとうございます。 シフトJISだけでも十分なので、とりあえずそれから抽出していきたいと思います。

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.4

>なるだけ多くの漢字 という条件なら、シフトJISではなくてUnicodeでやったほうがいいかも。

  • yama5140
  • ベストアンサー率54% (136/250)
回答No.3

#2 です(はずしていなかったようで、ホッとしてます)。 お示しのURLの「漢字コード表(シフトJIS)」をみると、「・」となる場所に法則性があるようです。 この法則性をプログラムすればよろしいかと。 法則に当てはまらない部分は、ダイレクトに除外(▼)すればよろしいかと。 下のソースは、「法則性」によって除外されたものが間違いなく「・」であるかを確認するものです。 逆の作り方をすれば、「お求めのもの」となると思います。 例)  for( iB = 0x40; iB <= 0xFC; iB++ ){      if( 0x7F == iB ) continue; ▼その1 if( ( 0x98 == iA ) && ( 0x73 <= iB ) && ( iB <= 0x9E ) ) continue;        ・        ・ 老婆心:手始めに、「配列」を用いず、先の「表」の体裁で「画面出力」することをお勧めします。 #include <stdio.h> void main() { int iA, iB; for( iA = 0x89; iA < 0xA0; iA++ ){ printf( "%2X:7F %c%c", iA, iA, 0x7F ); for( iB = 0xFD; iB <= 0xFF; iB++ ) printf( ":%2X %c%c", iB, iA, iB ); printf( "\n" ); } for( iA = 0xE0; iA < 0xFC; iA++ ){ printf( "%2X:7F %c%c", iA, iA, 0x7F ); for( iB = 0xFD; iB <= 0xFF; iB++ ) printf( ":%2X %c%c", iB, iA, iB ); printf( "\n" ); } }

takagoo100
質問者

お礼

ご回答ありがとうございます。 参考になりました。

回答No.1

JISの漢字コード表を参考にして、それを配列に格納すればいいと思います。

takagoo100
質問者

お礼

ご回答ありがとうございます。 このページが見つかり、参考にしていきたいと思います。 http://www.tohoho-web.com/ex/draft/code.htm

関連するQ&A