Код | #include <stdio.h> #include <string.h> #include <ctype.h> #include <stdbool.h>
//----------------------------------------------// bool FindWord(char** begin, char** end) { for (;**begin && !isalpha(**begin); (*begin)++);
*end = *begin;
for (;**end && isalpha(**end); (*end)++);
return **end; } //----------------------------------------------// unsigned GetCountWords(char* text, const char* word) { unsigned count = 0;
char* begin = text; char* end = text;
size_t len = strlen(word);
while (FindWord(&begin, &end)) { if (len == (end-begin)) { if (strncmp(begin, word, len) == 0) { count++; } }
begin = end; }
return count; } //----------------------------------------------// int FileToFile(const char* infile, const char* outfile, const char* word) { FILE* fin = fopen(infile, "r");
if (!fin) { return 1; }
FILE* fout = fopen(outfile, "w");
if (!fout) { fclose(fin); return 2; }
char buff[1024]; size_t size = sizeof(buff) / sizeof(*buff);
while (!feof(fin)) { fgets(buff, size, fin); fprintf(fout, "[%2d] %s", GetCountWords(buff, word), buff); }
fclose(fout); fclose(fin);
return 0; } //----------------------------------------------// int main() { const char* COutputFileName = "out.txt";
char fname[256], word[32];
printf("name of file: "); scanf("%s", fname);
printf("searching word: "); scanf("%s", word);
if (FileToFile(fname, COutputFileName, word)) { printf("Error in execute function ...\n"); return 1; }
return 0; }
|
Правда за TurboC не ручаюсь, этот раритет встречается только в университетах и у студентов первых курсов. Никто уже этой штукой не пользуется. Ниже, в архиве, 3 бинарника полученные компиляторами http://gcc.gnu.org/, http://www.digitalmars.com/ и http://bellard.org/tcc/. |