C/C++でマルチバイト文字
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNG0002名無しさん@お腹いっぱい。
NGNGfind_first_ofなどのメンバ関数はきちんと動いてくれるのでしょうか?
運がいいのか、今のところ問題は起きていないのですが、
気になって夜も眠れません。
0003名無しさん@お腹いっぱい。
NGNG00042
NGNGう〜ん、うにコードはちょっと・・・。
と思ってしまうので、マルチバイトでがんばりたいのですが・・・。
0005名無しさん@お腹いっぱい。
NGNGそんなこと考慮されてない。
SJISとかEUCで使うんだろ?
それなら、第一バイト、第二バイトとかの判定するだけじゃん。
自分で拡張しよう。
力業では、UNICODE-マルチバイトの変換テーブルもって、
必要なときだけUNICODEになおして処理するとか。
つーか、CStringとかAnsiStringなら、ロケールを考慮して
くれるんだから、素直にそういうの使えば?
00062>5
NGNG頑張って自分でアトリビュート書くか、拡張するかしてみます。
"AnsiString"は使える環境にないし、
"CString"は"operator LPCSTR ()"あたりが嫌いなので。
0007名無しさん@お腹いっぱい。
NGNG0008名無しさん@お腹いっぱい。
NGNG使えません。
00092
NGNGできれば標準basic_stringから離れたくないもので・・・。
自分的には、
�@あきらめてwstringを使う。
�Aがんばってアトリビュートを書く。
�Bアトリビュートにダミーをかましてテンプレートを特化する。
あたりかなぁと思っているんですが、
�Aに関しては自分の現在のスキルではとても無理だし、
�Bに関してはなんかすごく気持ち悪いのです。
どうなんでしょう?
もう少し、うにコードの規格がしっかりしてくれていればなぁ・・・。
0010名無しさん@お腹いっぱい。
NGNG>typedef basic_string<char> string;
>この型は、char 型の要素に対してテンプレート クラス basic_string を専用化したクラスを定義します。
>
>wstring
>typedef basic_string<wchar_t> wstring;
>この型は、wchar_t 型の要素のためにテンプレート クラス basic_string を専用化したものです。
stringも、wstringともにbasic_stringなんだけど。。。
0011>10
NGNGstringはマルチバイト文字の先導バイトを気にしなきゃいけないけど、
wstringはUNICODEなので、先導バイトを気にする必要がありません。
ただし、UNICODEは漢字の字体がいまいちなのです。
0012名無しさん@お腹いっぱい。
NGNGが意味が良く分からないんだけど、まさかフォントのことを言ってるんじゃないよね?
0013これでも使っとけ
NGNG#define iseuc(c) (((c)>=0xa1 && (c)<=0xfe))
#define issjis1(c) (((c)>=0x81 && (c)<=0x9f) || ((c)>=0xe0 && (c)<=0xef))
#define issjis2(c) ((c)>=0x40 && (c)<=0xfc && (c)!=0x7f)
#define ishankana(c) ((c)>=0xa0 && (c)<=0xdf)
0014>13
NGNG00152
NGNGUNICODEでは漢字の符号空間が狭いから、
似たような漢字がひとまとめにされるというのがいやだなぁ、ということです。
>13
どうもです。
ただ、そういうことではなくbasic_stringでマルチバイトを扱いたいなぁと思って。
0016名無しさん@お腹いっぱい。
NGNG00172
NGNG雑誌のなんかの読みかじりの知識で知ったかぶりをしてました。
ごめんなさい。
0018名無しさん@お腹いっぱい。
NGNG日本語を意識するようにしたクラスを作るしかないな。
0019名無しさん@お腹いっぱい。
NGNGWinならsprintf系で出来るよ
0020名無しさん@お腹いっぱい。
NGNGただ、それが「UNICODEだ」とは
書きたくないらしく、
「ワイド」と表現してます(−−;)。
#白状しろというツッコミは禁止
0021本物の2
NGNGまともなレスをどうも。
find系のメンバ関数が仮想関数なら迷わず継承するんですが、
非仮想なのでそれは見送りました。
とりあえず、この板ではこれ以上の情報は得られそうにないので、
このスレは終了でいいです。
皆さん意外と原始的な方法を使っているんだということが判っただけでも収穫でした。
まともなレスをつけてくれた皆さんどうもありがとうございました。
最終的にbasic_stringを特化していくことにしました。
********************終了********************
■ このスレッドは過去ログ倉庫に格納されています