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


BL  2002-07-25 05:06:23  No: 50279

現在、
   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 18:12:05  No: 50280

strcpyを使ってみては?


ryotaro331  2002-07-26 04:22:57  No: 50281

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


Sat☆  2002-07-30 21:36:48  No: 50282

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


Sat☆  2002-07-30 21:38:44  No: 50283

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


小林  2002-07-31 03:46:15  No: 50284

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

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


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加