任何人都可以指向一個從C源代碼中去除字符串的程序嗎?例如從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),但必須支持跨越以\結尾的多行的字符串。
這幾乎與someotherquestions一樣,但我沒有發現任何工具的參考。
純粹是爲了利益,爲什麼你需要這樣的工具?換句話說,你將如何處理該工具的輸出? – 2009-08-18 15:14:02
它用於令牌搜索。例如「在哪些文件中函數x,y和z叫」。通過預處理,刪除評論和字符串我會得到一個準確的結果。目前這些琴絃正在產生噪音。 – hlovdal 2009-08-18 15:41:10
使用理解C的代碼分析工具不是更好嗎?有很多。 – 2009-08-18 16:17:57