ページ 11

コーテーションを含むコメント判定

Posted: 2010年5月23日(日) 22:02
by mii
以前コメントプログラムでお世話になったmiiです。

ダブル、シングルコーテーションの判定ロジックが分からないので教えていただきたです。
printf("\\");/*  ←コメントではない行
    a*/ ←コメント行
    putchar('\\');/* ←コメントではない行
    a*/ ←コメント行
    printf("\'");/* ←コメントではない行
    a*/ ←コメント行
    putchar('\'');/* ←コメントではない行
    a*/ ←コメント行
    printf("\"");/* ←コメントではない行
    a*/ ←コメント行
    putchar('\"');/* ←コメントではない行
    a*/ ←コメント行
    printf("/*'\''""", /*\\"); ←コメントではない行
    printf("'\"*/); ←コメント行
最初の文字がダブルコーテーションだったら次のダブルコーテーションを見つけるまで
読み飛ばすようにしていたのですが、\マークが入るとわけがわからなくなります^^;

どのように判定すれば正しく処理できるのでしょうか?

Re:コーテーションを含むコメント判定

Posted: 2010年5月23日(日) 23:21
by Ma
どのような出力を期待しているのですか?
また、具体例を出すかもうしこし詳しく書かないと何がわからないのかこちらがよくわかりません。

ダブルクオーと内の/* は文字列として扱われます。
そのダブルクオート内で、ダブルクオートの文字を使いたいならエスケープしますが、
シングルクオートは文字列となるのでエスケープする必要ありません。