1. Пользуйтесь тегами кода. - [code] ... [/code] 2. Точно указывайте язык, название и версию компилятора (интерпретатора). 3. Название темы должно быть информативным. В описании темы указываем язык!!!
Условие задачи: Определить, сколько раз в данном текстовом файле g встречается строка UNIX. Вроде составил прогу, но почему-то не работает...
#include <stdio.h> #include <string.h>
int main () { FILE *fp; int k,n; char line1[255],line2[5]="UNIX"; if ((fp=fopen("test.txt","r"))==NULL) { printf("Oshibka pri otkrytii faila.\n"); exit(1); } fgetc(fp); while ((!feof(fp)) if k=strcmp(line1,line2) n=n++; fgetc(line1,255,fp); printf("\n%dKolichestvo vhozhdeniy",n); return 0; } }
n = 0; while(!feof(fp)) { fgets(s, MAX_LEN, fp); p = strtok(s, delimiter); while(p) { if(!strcmp(p, "UNIX")) n += 1; p = strtok(NULL, delimiter); } } printf("\n%d - Kolichestvo vhozhdeniy", n); return 0; }
Что непонятно?
Спасибо большое за помощь! Можно уточняющий вопрос?
n = 0; while(!feof(fp)) { fgets(s, MAX_LEN, fp); p = strtok(s, delimiter); while(p) { if(!strcmp(p, "UNIX")) n += 1; p = strtok(NULL, delimiter);
В этом кусочке мы сначала инициализируем функцию strtok, а потом непосредственно используем? То есть, при отсутствии лексемы, подлежащей возврату, возвращается нулевой указатель?