Я работаю над программой для фильтрации списка результатов Craigslist;Я хочу найти относительно дешевую комнату в аренду.Готовая программа удалит строки, цена которых превышает 600 долларов, и создаст новый файл, но сейчас я удаляю каждую строку с символом $ и печатаю в терминал.
Программа работает нормально при запускеиз собственного источника, но когда я запускаю его на html-странице результатов craigslist, сохраненных из Firefox, он печатает до закрывающей html-скобки и выдает предупреждение об обнаружении разрушения стека и обратную трассировку.Я изучаю C из K & R, поэтому, если этот код выглядит устаревшим, вот почему.
# 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;
}
}
}