C ソース コードから文字列を削除するプログラムを教えてもらえますか? 例
#include <stdio.h>
static const char *place = "world";
char * multiline_str = "one \
two \
three\n";
int main(int argc, char *argv[])
{
printf("Hello %s\n", place);
printf("The previous line says \"Hello %s\"\n", place);
return 0;
}
になる
#include <stdio.h>
static const char *place = ;
char * multiline_str = ;
int main(int argc, char *argv[])
{
printf(, place);
printf(, place);
return 0;
}
私が探しているのは、stripcmtに非常によく似たプログラム で、コメントではなく文字列を削除したいだけです。
便利な正規表現だけでなく、既に開発されたプログラムを探している理由は、すべてのコーナーケース (文字列内の引用符、複数行の文字列など) を検討し始めると、通常、それよりも (はるかに) 複雑になり始めるためです。初登場。また、RE が達成できることには限界があります。このタスクでは不可能だと思います。非常に堅牢な正規表現を持っていると思われる場合は、お気軽に送信してください。ただし、素朴sed 's/"[^"]*"//g'
な提案はご遠慮ください。
(コメント内の(おそらく終了していない)文字列を特別に処理する必要はありません。それらは最初に削除されます)
改行が埋め込まれた複数行の文字列のサポートは重要ではありませんが (正当な C ではありません)、末尾が \ で終わる複数行にわたる文字列はサポートされなければなりません。