配列に全角の文字を入れるには?


BL  2002-07-24 20:06:23  No: 50279  IP: [192.*.*.*]

現在、
   char mozi[500];

   pDoc->mozi[file_a]='z';
   …
   file_a++;

で一つの配列に1バイトずつ入れていき、

   char data3[100];
   for(i=0;i<100;i++){      
      data3[i]=pDoc->mozi[i];
   }

でdata3に入れていき、文章を作っています。
このとき、全角の文字を入れようと

   pDoc->mozi[file_a]='あ';

としても、

'=' : 'const int' から 'char' へ切り詰めます。
'=' : 定数値が切り捨てられました。

と、警告が出て、最後に文章を表示するときに不都合が出ます。
1バイトの配列に2バイトの全角文字を入れているのでエラーとなるのでしょうが…。
何か良い方法はあるのでしょうか?

編集 削除
 2002-07-25 09:12:05  No: 50280  IP: [192.*.*.*]

strcpyを使ってみては?

編集 削除
ryotaro331  2002-07-25 19:22:57  No: 50281  IP: [192.*.*.*]

i++ではなく、i+=2で試してはどうでしょう?

編集 削除
Sat☆  2002-07-30 12:36:48  No: 50282  IP: [192.*.*.*]

「俺様!」と入力すれば何とかなりますよ。

編集 削除
Sat☆  2002-07-30 12:38:44  No: 50283  IP: [192.*.*.*]

上の記述は取り消します。冗談です。ごめんなさい。

編集 削除
小林  2002-07-30 18:46:15  No: 50284  IP: [192.*.*.*]

普通はstrcpy()やmemcpy()やら使うものですが、
"あ"[0]
"あ"[1]
というやり方もあります。

例えば
pDoc->mozi[file_a] = "あ"[0];
pDoc->mozi[file_a + 1] = "あ"[1];

編集 削除