←検索窓の楽しみ方
  ショッピングモール  掲示板ランキング


【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※返信付き投稿の削除は禁止!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら


 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板1こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.4356

全角文字列の操作
投稿者---gosa(2005/07/20 22:39:00)


こんにちは。
いきなりなのですが、
char text[7] = "abcdef";
と、してtext[1]
を指定すればbが当てはまりますよね?
これは半角の文字で、
全角は2文字分のスペースを使うと聞いたのですが、
char text[7]とすると、最大で3文字までの全角文字が
格納できるということですよね?
たとえば、”夏祭り”
と、して”祭”の文字だけを指定して
表示したりするときは
どの配列の場所(text[7]の”7”という添え字)を指定すれば
良いのでしょうか?
text[1]やtext[2]、text[3]などと指定しても
文字化けした感じになってダメでした。
どなたかご教授下さい。
お願いします。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:全角文字列の操作 4357 RAPT 2005/07/20 23:00:38


No.4357

Re:全角文字列の操作
投稿者---RAPT(2005/07/20 23:00:38)


環境依存の話の名ので、環境を明示してください。
文字のバイト長は文字コードセットにも依存します。

いわゆる全角文字→マルチバイト文字は、ShiftJISコードセットでは、
2バイトですが、EUCやUnicodeなどでは2〜4バイト以上の場合があります。

char ということは、コンパイルは非Unicodeなのですね。
# Unicodeでコンパイルするといわゆる半角文字も2バイトだったりします。

ま、ShiftJISコードだとして、

char text[] = "あいうえお";
printf("%c%c\n", text[0], text[1]); // "あ"
printf("%.2s\n", &text[4]); // "う"

となります。動作確認してみてください。

ちなみに、コンパイルでUnicodeの場合、char ではなく、wchar_t を使って、
wchar_t wtext = L"あいうえお";
wtext[0]; // あ
wtext[2]; // う
のようにアクセスできます。



この投稿にコメントする

削除パスワード

No.4360

Re:全角文字列の操作
投稿者---gosa(2005/07/22 21:49:14)


ありがとうございます。
環境ですか。
WindowsXPでコンパイラはBorland C++ 5.5を使っています。
でも、
教えていただいたとおりにしたら無事に出来ました!
ありがとうございました m(__)m



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity