谁能指出我从 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的程序 ,只是我想删除字符串而不是注释。
我正在寻找一个已经开发的程序而不仅仅是一些方便的正则表达式的原因是因为当您开始考虑所有极端情况(字符串中的引号、多行字符串等)时,事情通常会开始(远)比它复杂首先出现。REs 可以实现的目标是有限的,我怀疑这项任务是不可能的。如果您确实认为您有一个非常强大的正则表达式,请随时提交,但请不要提出天真sed 's/"[^"]*"//g'
的建议。
(不需要对评论中的(可能是未结束的)字符串进行特殊处理,这些将首先被删除)
支持带有嵌入换行符的多行字符串并不重要(不合法的 C 语言),但必须支持跨越多行以 \ 结尾的字符串。