1

これは、Kernighan と Ritchie のコメント削除プログラムに関するものです (number 1-23 p 34 ANSI eidtion)。以下は私の解決策です。

http://pastebin.com/Fu9C94fV

このプログラムは、ほとんどの C プログラムで問題なく動作し、コメントを削除します。ただし、複数のアスタリスク ( ** /)で終わるコメントを含む一部のプログラムでは、問題が発生します (読み込めません)。そのような例の1つはこれです:

http://pastebin.com/J8EQrwve

ただし、最初に同様のコメントがあるにもかかわらず、このプログラムで動作します。

http://pastebin.com/thWKvDS7

では、コメント削除プログラムがこのように動作する原因は何だと思いますか?

4

1 に答える 1

1

*コメント状態で を押すと、次の文字を読んでそれが かどうかを確認します/。これはその文字を消費するため、次の反復ではチェックされません。

そう:

/*  **/
    12

at *1 を参照し、at 2 を読み取り、*コメント モードcontinueのままで、/. 一方:

/* ***/
   123

at 2 を見て、*at 2 を読み*、次に*at 3 を読み、次を見つけて/コメント モードを終了します。

于 2012-12-18T10:35:33.800 に答える