文字列の全角判別

[戻る]
Pi_ter 2001/11/08(木) 17:13:15
こんばんあ
VCというよりC/C++の質問ですが

char pp[512];
で、宣言されていて
それには半角英数しか入れたくないのに

strcpy(pp,"4556法あqq");
のような文字列が
入ってしまった場合、
このppに全角文字が入っているかどうか
判別する方法を
知りたいんですが

誰か良いアイディア知らないですか?

Bun 2001/11/08(木) 17:45:05
あまり良い関数がないようです。

「IsDBCSLeadByte()あたりでコツコツ調べる」ではいかがでしょ?

関数の説明はMSDNを参照してください。

AKI 2001/11/08(木) 17:52:31
基本はBunさんが書いてるようにコツコツ調べるのがいいと思います。
姑息なのだとMultiByteToWideCharでunicodeに変換して文字長さが2倍になってたら
全て半角っていうのも・・・保証できないですけどね

クラフトマン 2001/11/08(木) 18:39:25
こんなのはどう?!

  if (strlen(pp) != _mbslen(pp)) {
      //全角入りでーす。
  }

Pi_ter 2001/11/08(木) 18:48:49
RES
ありがとうございます

やはりIsDBCSLeadByte()
は確実なんでしょうねー

if (strlen(pp) != _mbslen(pp)) {
     //全角入りでーす。
}
は面白いかもですねー
楽だし

試してみますー

Pi_ter 2001/11/19(月) 16:19:34
[[解決]]
忘れてた
ありがとうございました

古いスレッドには追加発言できません。