全角日本語はchar型を2つ連続で続けて出力しないといけませんよね。半角だと1バイトですむところを2バイト使っているわけですけど。半角と全角が入り混じったテキストから的確に1文字ずつ取り出すことは出来ないのでしょうか?(2バイトずつ取り出すと、半角のところで文字化けになってしまいますし、1バイトずつだと全角のところが文字ばけしますよね。)半角の時は、半角を、全角の時は全角をという風に。。。
あと、全角の日本語を一文字として扱う型は何かないでしょうか。いつも、charの配列でchar[0],char[1]として使っているのですが。
ちなみに、windows98でBorlandのTurbo C++を使って、C言語で書いています。
なにとぞ、よろしくおねがいします。
No.1ベストアンサー
- 回答日時:
混在文字列の処理は確かに面倒と言えば面倒ですが、私は以下のように処理していました。
(最近、プログラムを作っていないので・・・)1.配列より取り出した1バイトを半角文字かどうか判断する。
ライブラリのisascii()等を使用する。この辺りはコンパイラによる
ところがありますので注意して下さい。
2.1バイト文字であればそのまま出力し、そうでなければ該当の1バイト
とその次の1バイトを出力する。
こう言った場合は、面倒ですが1バイトずつ判断して処理するしかないと思います。混在文字列の文字を1文字として扱いたいのであればUNICODEとかで扱えば可能だと思いますが、これは経験がないのであくまで参考として下さい。
上記はあくまで、表示可能な文字列のみの配列の扱いですので、制御コードとか全角でも表示できないコードとかは考慮していません。
No.4
- 回答日時:
ShiftJISでは漢字は2バイト文字のため、charではサイズが足りません。
WORD型やwchar_tであればサイズは足りるでしょうが、ASCII文字やいわゆる半角カナなどの1バイトで表現される文字と混合して扱うのが難しくなります。
可能であればUTF-16などの文字種(表現に使うバイト数が変化しないようなコード体系)に変換して扱えばよいと思います。
>可能であればUTF-16などの文字種(表現に使うバイト数が変化しないようなコード体系)に変換して扱えばよい
コード変換はどのようにするか今のところわかりませんが、がんばってみます。
ありがとうございました。
No.3
- 回答日時:
シフトJISですよね。
その場合は、その文字が全角かどうかは、数値の範囲によって決まっています。
参考URLのところに俺が以前使ったページを記載しておくので調べてみてください。
で、読み込んだ文字が全角なら次の文字と一緒に出力するようにすればOKのはずです。
参考URL:http://www.hosibune.net/~mak/technical/kanji.shtml
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Word(ワード) Windows11キーボードの調子が悪いので治し方を教えてください。 【症状】 1つ目 キーボードの 5 2022/07/03 14:51
- Excel(エクセル) EXCELでの文字・数字入力の基本について教えてください。 2 2023/05/29 23:17
- Android(アンドロイド) 海外のAndroid 端末の場合、日本語全角は、どう表示されるのでしょうか? 1 2022/10/02 21:16
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- マウス・キーボード 何故、ローマ字や英語を全角で打つ? 5 2022/05/15 09:36
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- iOS これは日本語入力の大発明ですか? 7 2022/12/21 07:17
- Mac OS Macにおける全角・半角の切り替え(自動のそれの停止) 2 2022/09/13 16:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのテキストボックスの入...
-
住宅にカナを入力する際に丁目...
-
英数字のみ全角から半角に変換
-
エクセルにMicrosoft Barcode C...
-
VBA 文字に半角が含まれて...
-
全角英数字の必要性が理解できない
-
word差し込み印刷 半角カタカ...
-
IEからEdgeへの移行に伴うIMEの...
-
メモ帳の段落の揃え方
-
全角入力
-
半角/全角文字混在データの分...
-
全角・半角が混じったテキスト...
-
ダブルコーテーションの置換
-
正規表現の全角、半角、大文字...
-
どうしてパソコンお宅を自称す...
-
ExcelVBA:KeyCode「半角/全角...
-
ACCESS:半角、全角空白スペース...
-
char型全角数字から、int型半角...
-
かつてなぜ、PC-98 MS-DOSでは...
-
全角英数字を半角英数字に変換...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
住宅にカナを入力する際に丁目...
-
全角英数字の必要性が理解できない
-
Excel関数またはVBAでの質問に...
-
エクセルにMicrosoft Barcode C...
-
IEからEdgeへの移行に伴うIMEの...
-
VBA 文字に半角が含まれて...
-
COBOL・全角判定
-
プログラミングでは、半角括弧...
-
word差し込み印刷 半角カタカ...
-
メモ帳の段落の揃え方
-
よくアカウント等に使われる 半...
-
Accessのテキストボックスの入...
-
ダブルコーテーションの置換
-
エクセルでの”々”の扱い
-
小説の点々は……と繋がらなくて...
-
大文字と全角文字は同じ意味で...
-
[VBScript]バイト長の判定
-
封筒の宛先で縦書きの書き方
-
VBで、String型のデータが、...
おすすめ情報