No.2ベストアンサー
- 回答日時:
半角文字は最上位ビットを見ればわかるので定義しなくても判別は出来ます。
問題は40バイト目が全角文字(最上位ビットが1)の場合にそれが1バイト目なのか2バイト目なのか3バイト目(補助漢字は3バイトになるのがEUCの欠点ですね)なのかの判断が出来ないことです。
例えば"aいいいい"という文字列はEUC-JPでは
0x61, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4
になります。
結局、文字列の最初から1バイトずつ順番にチェックしていくしかないのではないでしょうか。
No.1
- 回答日時:
EUCコードについて調べてみれば分かりますが、
1バイト目が、0xA1 ~ 0xFEの場合は、2バイト文字として扱われるようです。
そして1バイト目が、0x8Eだった場合は、次の文字を半角カタカナとして扱います。
質問によると、40バイト取得したいとのことですが、単純に40バイトで切るのなら40バイト分コピーして、
後ろの文字と、その一つ前を判定すれば良いと思います。
でも、半角40文字分の文字列の取得となると、半角カタカナも2バイトで表現されるため、
1文字ずつ判定しながらコピーしなくてはいけません。
気を付けなければならないのが、文字列判定時にcharではなくてunsigned charを使うということです。
これについては、コンピュータ内の負の数の表現方法を勉強すれば分かると思います。
参考URL:http://www.unixuser.org/~euske/doc/kanjicode/ind …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Android(アンドロイド) 海外のAndroid 端末の場合、日本語全角は、どう表示されるのでしょうか? 1 2022/10/02 21:16
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Ruby 1、Rstudioで回帰直線を求めるために必要な関数はなにか?アルファベット2文字で答えよ。 2、r 1 2022/08/03 11:38
- Excel(エクセル) エクセルの数式で教えてください。 3 2022/10/25 10:52
- その他(ソフトウェア) ソースネクストアプリをインストールし、製品登録で半角英数字が入力できない 5 2022/07/03 22:44
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】NEW演歌
【大喜利】 若い人に向けたことは分かるけど、それはちょっと寄せ過ぎて変になってないか?と思った演歌の歌詞
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
遅刻の「言い訳」選手権
よく遅刻してしまうんです…… 「電車が遅延してしまい遅れました」 「歯医者さんが長引いて、、、」 「病院が混んでいて」 などなどみなさんがこれまで使ってきた遅刻の言い訳がたくさんあるのではないでしょうか?
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
全角半角を調べるライブラリ関数はありますか?
C言語・C++・C#
-
半角文字と全角文字の判別の仕方
C言語・C++・C#
-
fgetsなどのときのstdinのバッファを消すには?
C言語・C++・C#
-
-
4
数字以外が入力されたらエラー文を出したい。
C言語・C++・C#
-
5
ファイル内のデータを1行削除する方法
C言語・C++・C#
-
6
char型全角数字から、int型半角数字への変換方法
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルシート名の制限を変更...
-
UTF-8で5~6バイトになる文字コ...
-
バイト列とバイナリ列の違いが...
-
機種依存文字をチェックしたい。
-
10Mバイトて文字数に すると何...
-
COBOLのCOMP形式について
-
GetWindowTextでアドレスバーか...
-
文字列の最後の一字を削除
-
char str[256]の256の意味は?
-
より高速な画像の表示法
-
変数 および ポインタのサイ...
-
ピクセル,dpiから容量(バイト...
-
SQLで1バイト、2バイト混在...
-
文字列のバイト数を取得する関...
-
EUCのダブルバイト文字の判定
-
ListView重複データ削除
-
Excel VBA メール作成について ...
-
stable diffusionのエラー
-
CGIを勉強しています。¥n(改...
-
【Excel VBA】10進数を2進数に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルシート名の制限を変更...
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
COBOLのCOMP形式について
-
char str[256]の256の意味は?
-
バイト列とバイナリ列の違いが...
-
ピクセル,dpiから容量(バイト...
-
「1TB」のHDDに日本語は何字入...
-
Javaで日本語1文字のバイト数
-
機種依存文字をチェックしたい。
-
PICマイコンで変数値の保持
-
【VB2005】テキストボックス内...
-
SQLで1バイト、2バイト混在...
-
ビットスワップとバイトスワッ...
-
VBAでShift-JISのURLエンコード
-
GetWindowTextでアドレスバーか...
-
C++ Builderで文字列をバイトに...
-
UCS-2の一覧表が欲しい
-
64bit対応
-
日付時刻を4バイトに
おすすめ情報