文字列の全角判別 – プログラミング – Home

通知
すべてクリア

[解決済] 文字列の全角判別


Pi_ter
 Pi_ter
(@Pi_ter)
ゲスト
結合: 23年前
投稿: 6
Topic starter  

こんばんあ
VCというよりC/C++の質問ですが

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

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

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


引用未解決
トピックタグ
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
 

あまり良い関数がないようです。

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

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


返信引用
AKI
 AKI
(@AKI)
ゲスト
結合: 23年前
投稿: 19
 

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


返信引用
クラフトマン
 クラフトマン
(@クラフトマン)
ゲスト
結合: 24年前
投稿: 72
 

こんなのはどう?!

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


返信引用
Pi_ter
 Pi_ter
(@Pi_ter)
ゲスト
結合: 23年前
投稿: 6
Topic starter  

RES
ありがとうございます

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

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

試してみますー


返信引用
Pi_ter
 Pi_ter
(@Pi_ter)
ゲスト
結合: 23年前
投稿: 6
Topic starter  

忘れてた
ありがとうございました


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました