我正在开发一个程序来过滤 craigslist 结果列表;我想找一个相对便宜的房间出租。完成的程序将删除价格超过 600 美元的行,并创建一个新文件,但现在我要删除带有 $ 字符的每一行,并打印到终端。
该程序在自己的源代码上运行时运行良好,但是当我在从 Firefox 保存的 craigslist 结果的 html 页面上运行它时,它会一直打印到结束 html 括号并抛出堆栈粉碎检测到的警告和回溯。我正在从 K&R 学习 C,所以如果这段代码看起来过时,那就是原因。
# include <stdio.h>
# define MAXLINE 300
main()
{
char line[MAXLINE];
int c;//current character
int p = 0;//position in the line
int flag = 0;//there is a dollar sign
while ((c = getchar()) != EOF){
line[p++] = c;
if (c == '$'){
flag = 1;
}
if (c == '\n'){
if(flag == 0){//there was no $, print the line
int i;
for(i=0;i<p;i++){
putchar(line[i]);
line[i] = '\0';
}
}
p = 0;
flag = 0;
}
}
}