• ベストアンサー

全角スペース

全角スペースはコメントにも使用すべきではないのでしょうか。 コード上に入り込んだ場合はコンパイラーがエラーを出してくれると思いますが、これも完全では無いのでしょうか。 例)紛れ込む位置によっては判断しない。 その他、全角スペースの致命的な問題があれば、教えてください。 # 後輩を指導する上で、決定的な理由が言えず困っております。

  • mtsm
  • お礼率64% (85/132)

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.5

>私の経験ではコンパイルエラーとなると思いますが。 文字リテラル以外に全角文字を使えば普通コンパイルエラーになるでしょうが ならない場合もあります。(VisualC++2005では全角スペースによるインデントも可能です。) もちろん他のコンパイラではコンパイルエラーになるので使わない方が良いでしょう。 > 全角スペースはコメントにも使用すべきではないのでしょうか。 自由にしてください。C/C++の規約にコメントに全角スペースを使うなとはありません。 あなたは後輩にコードの中にコメントを含め「全角スペース」を極力使うなと指導したいのでしょうか? それは好みにすぎません。 あえて欠点をいうならエディタによっては、全角スペースがみえづらいということでしょうが、 ただよほど馬鹿なコンパイラでない限り、全角スペースが入っていて問題になる場合コンパイル時に エラーになります。ですから致命的な問題にはなりません。 いまやC/C++のコンパイラ自体、UTF8や、UCS2等のUNICODE に対応しているものも多いですからね。(gccやVC2005) 例えばVisualC 2005なら int あ = 0; あ++; なんて出来てしまいます。(昔は考えられなかったですね。) ただし「全角スペース」の変数名はエラーになります。

mtsm
質問者

お礼

早々に回答くださりありがとうございます。 > それは好みにすぎません。 全角スペースで問題になったことを聞いたことがあるという、あいまいな情報だけで、後輩に指導したくなかったので、根拠を探ってみたのですが、いまのところ、根拠は見当たりません。 自由にするようにしたいと思います。

その他の回答 (4)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.4

コメント中に使って問題になったことはありません。 私は全角空白を□で視覚的にわかるように表示させてるので半角空白と見間違えることもないです。

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.3

> 全角スペースはコメントにも使用すべきではないのでしょうか。 そういうことはありません。必要があれば、どんどん使ってください。 > コード上に入り込んだ場合はコンパイラーがエラーを出してくれる 必ずしもそうとは言えません。 文字列リテラルの中に全角空白を書くことは、ごく普通にあります。

mtsm
質問者

補足

早々に回答いただきありがとうございます。 > 文字列リテラルの中に全角空白を書くことは、ごく普通にあります。 文字列リテラル中ではなく for(i=0; i<INT_MAX; i++){・・・} のような部分で、適当なスペースを入れると思いますが、これが全角スペースであった場合などでは問題になることはないのでしょうか。 私の経験ではコンパイルエラーとなると思いますが。

  • kizuki135
  • ベストアンサー率29% (162/552)
回答No.2

むしろ…半角カタカナや特殊記号、特殊漢字などの、 機種依存文字と言われる文字の使用の方が問題かと…。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

コメントに日本語を許可しているのなら全角スペースだけ仲間はずれにする理由はなさそうに思います。

mtsm
質問者

補足

早々に回答いただきありがとうございます。 /* コメント */ や // コメント として記述する部分に全角スペースを使用して問題となったことはありませんでしょうか。

関連するQ&A

  • 全角スペースのチェックについて

    こんにちは。 全角スペースについてのご質問です。 ある入力項目に対して必須チェックを行っております。 下記のコードはServlet内で以下のチェックを行っております。 ---------------------------------------------------------------- String name = req.getParameter("name"); bean.setName(name); if(bean.name().trim().length() == 0 || bean.name() == null){ return NO_INPUT_ERR; } ---------------------------------------------------------------- このチェックでは半角スペース『 』であればエラーとして判断してくれますが、 全角スペース『 』ではエラーとして判断してくれません。 (全角スペースはtrim()を実行しても省いてくれないため) 全角スペース『   』の判断をする場合は、 新規にクラスを作成して文字数分繰り返しチェックを入れるような処理を 自分で作成しないとチェックは出来ないのでしょうか? ご存知の方がおりましたら、ご教授の程お願い致します。

    • ベストアンサー
    • Java
  • 全角文字と全角スペース

    いつもお世話になっております。 全角文字 + 全角スペース + 全角文字 上記以外の場合はエラーにする正規表現を思考しています。 いくつか試してみたのですが、うまくいきません。 -------------------------------------------------- ini_set('default_charset', 'eucJP-win'); ini_set('mbstring.http_output', 'eucJP-win'); ini_set('mbstring.internal_encoding', 'eucJP-win'); 1) if (preg_match('/^[ア-ンあ-ん亜-腕弌-熙]+[ ][ァ-ヶぁ-ん亜-腕弌-熙]+$/', $name)) { 2) if (!mb_ereg("^[ア-ンあ-ん亜-腕弌-熙]+\ [ア-ンあ-ん亜-腕弌-熙]+$", $name)) { -------------------------------------------------- スクリプト自体の文字コードはEUC-JPです。 ただ、正規表現のチェックをする文字列はCSVファイルで アップロードされたもので、Shift-JIS から eucJP-win に置換しています。 eucJP-win にしている理由は、特殊文字の文字化けを防ぐためです。 (ハシゴタカなど・・・) 以前こちらで質問し、回答をいただきました。 http://okwave.jp/qa3274023.html 間違っている箇所、他の方法がありましたら ご教示お願いいたします。 <環境> PHP 4.3.1

    • 締切済み
    • PHP
  • マクロで半角・全角スペースと改行を削除したい

    マクロ初心者です。 BookA-sheetAの「F1:F40」に入っている文字列左右(前後)の半角・全角スペースと、 改行コードを削除したいのですが、書いてみたマクロはエラーが出てしまいます。 trim関数と、改行コード削除はどう組み合わせればよいのでしょうか? 初心者で申し訳ないのですが、ご教示いただければ幸いです。

  • 入力データの半角スペースと全角スペースを区別させる方法

    データベースに文字列を保存する際、既に同じ文字列が保存されていないか事前にチェックをかけているのですが、この時半角スペースが入った文字列と、全角スペースが入った文字列を同じものと認識してしまい、これを区別したいのですが、どういった方法があるのでしょうか。 具体例を出しますと、 「AAA BBB」(間の空白は全角スペース)を入力する際、同じ文字列が同じフィールドに保存されていないか、SQLのWHERE句で「フィールド名="AAA BBB"」を指定して検索し、同じ文字列があれば警告を出しているのですが、「AAA BBB」(間の空白は半角スペース)にも検索でマッチしてしまいます。 この検索の時に「AAA BBB」をマッチさせないようにしたいのです。 OS:Linux MySQLバージョン:5.1.22 文字コード:UTF-8 です。 よろしくお願いします。

  • ACCESS:半角、全角空白スペースを含む文字列の検索

    Access2003にて、空白、全角スペースを含む文字列の 検索を行う方法について教えて下さい。 他社から送られてきた検索用のリスト(xls形式)を元に、 商品の検索を下記のフィールドから行っています。 商品フィールドに商品名が約30万行格納されています。 格納されている商品名は間に 半角スペース、全角スペース、スペース無し など不規則な入力になっています。 (例:東芝除湿機、日立 掃除機、Canon 複合機…) 商品名の検索時に文字列の半角スペースと全角スペースの 指定が異なっていると検索が行えないため困っています。 (例:Canon 複合機で検索時、格納データはCanon 複合機のため検索結果なしになる) テーブルのスペースを統一、もしくは削除する方法などありますでしょうか。 皆様のお知恵をお貸し下さい。 なお、クエリでtrimを使用したスペースの削除は行ったのですが、 検索時に頻回にErrorが出るようになり断念しました。

  • COBOLで全角変換を行いたいのですが...

    汎用機(ACOS-4)でCOBOLを使って開発を行っている者です。 INファイルのある項目を全角変換し、 OUTファイルに出力するプログラムを作成しています。 ただ困った事に変換元の項目の内容が 半角のデータ、全角のデータ、半角全角が混在しているデータもあるのです。 現在は項目の中に半角スペースの文字コードが存在すれば全て半角とし、 以外は全て全角と判断しています。 もちろん項目中のデータが全て埋まっている場合や、 半角全角が混在しているデータについては文字化けを起こしています。 どなたかこのような変換について良い方法があればご教授願います。 宜しくお願い致します。

  • Java正規表現で全角記号

    Javaの正規表現 で「全角記号のみ」というのがどうしてもわかりません。 今Javaでプログラムを作っていてString name が nullの時と、全角記号半角記号スペースのみ、空文字の時に returnをnullにするif文を考えています。 しかし、半角記号と全角記号の正規表現がサッパリわかりません 。とくに全角記号が全くわかりません。 種類が多すぎてきりがないのです。 どうやって表現したらいいのでしょうか? [、-○]などがネットにはありましたが、エラーになります。 どうか教えてください! 追加の詳細が必要なときはコメントいただけましたら返信いたします。 よろしくお願いします。

  • 全角文字列を挿入するには

    エクセルVBAで以下のことを効率よくやるにはどうしたらよいでしょうか? 等幅フォントの文字列に全角文字列を挿入(置換え)します。 具体的に言うとホストコンピュータのリスト(等幅フォント半角文字132桁、A列のみ使用)に全角文字コメントを自動挿入します。 ホストリストは2つのファイルを比較するリストで16進数表記になっています。1行目が比較内容、2行目がファイル1の内容、3行目がファイル2の内容、4行目が空白行なっており、4行目にコメントを挿入します。                      * IN1 F1000000CF1F1F2020070429CF0F0F0F0F5000000 IN2 F1000000CF1F1F2020070430CF0F0F0F0F5000000                COL8,5発生日 コメント挿入は同じ行に複数回入れることがあります。 入れようとする位置に既にコメントがある場合、空白行を追加してから 挿入します。 最初にコメントを入れる場合、特に問題は発生しませんが、2回目に入れる場合、コメントがあるかどうか該当位置を特定しなければなりませんが、全角文字が発生していると単純に位置を決定できません。 該当位置の決め方、そして挿入した場合、後続をズレないようにする必要があります。何故なら後続にコメントが既に入っているケースもあるからです。 一応自分なりにVBAは作っています。 (1)配列を作って1文字づつ配列のマスに入れる。 (2)全角文字の場合配列の2マスに(同じ内容を)入れる。 (3)追加文字列は該当の配列内容を見て、空白の場合、置き換える。  その時も同じように全角文字は2マス分使用する。 (4)以上がおわったら配列から取り出す。  取り出す際、全角文字の場合、次のマスを読み飛ばす。 ホストリストは数万行になる場合があり、配列を使わないでもっと効率よくやるにはどうしたらよいでしょうか。 もう少し考えれば出来るような気がしますが、これだけ考えるだけで疲れてしまいました。 よろしくお願い申し上げます。

  • PL/SQLで、区切りのスペースは必要ですよね?

    仕事で渡されたソースコードを読んでいるのですが、 IF a>0THEN RETURN 1 END; と書かれていました。 0とTHENの間に半角スペースがありません。 これはコンパイラにどう解釈されるのでしょうか? (1)「0THEN」が「0」「THEN」に分けて解釈されて意図した通りに動く (2)「0THEN」という変数がないのでコンパイルエラーになる コンパイル環境がないので試せないのですが、私は(2)だと思っているのですが合ってますか?

  • 正規表現を使った全角文字のチェック。

    現在入力項目が全角文字OR半角スペースかどうかチェックする、スクリプトをBASP21を使って下のようなコードを作っています。VBSで色々試しましたができません。 本番では、BASAP21が使えないので困っています。 処理としては、入力値が、シフトJISの全角に当たる文字コードかどうかチェックしています。 BASP21を使わない方法で可能でしょうか? また可能であれば方法を教えてください。 環境:WindowsXPSP2 VBScript IIS LOCALHOST上で実行しています。 例: str = " あいうえおア " Set bobj = CreateObject("basp21") output = bobj.Match("/^(?:[\x81-\xEF][\x40-\xFC]|\x20)+$/",str) IF output = 0 THEN Response.Write("全角で入力して下さい。") END IF

専門家に質問してみよう