Найти нужные слова и записать их в другой файл.

 
0
 
C++
ava
Ajelika | 16.12.2016, 10:12
Выделить в текстовом файле все слова, разделенные символами-разделителями «_.,;:\n\t!?», и все слова, в которых присутствуют гласные латинские буквы, построчно записать в другой текстовый файл.
Нашел такие слова, но не знаю как записать в другой файл.

#include <cstring>
#include <stdio.h>
#include <ctype.h>
#define DELIMITERS " .,:;?!\n\t"
#define GLAS "AaEeIiOoUuYy"
#define N 1024
int Count(char *s)
{
int i,flag=0;
for(i = 0; s[i] != '\0'; i++)
if (strchr(GLAS,s[i]))//нахожу слова в которых есть слова с гласной буквой
flag=1;
else flag=0;
return flag;
}
int ReadWords(char *fname,char *fname1)
{
FILE *f,*g;
char s[N], *word;
int i, j, flag[256] = {0};
if ((f = fopen(fname, "r")) == NULL)//открыл файл в котором есть слова
return 1;
if ((g = fopen(fname, "w")) == NULL)//открыл другой файл в который буду записывать
return 1;
for (i = 0; DELIMITERS[i]; i++)
flag[DELIMITERS[i]] = 1;
while (fgets(s, N, f) != NULL)
{
for (i = 0; s[i] && flag[s[i]]; i++)
;
while (s[i])
{
word = s + i;
while (s[i] && !flag[s[i]])
i++;
j = i;
while (s[i] && flag[s[i]])
i++;
s[j] = '\0';
if (Count(word) == 1)//если в файле есть нужные слова то...

}
}
fclose(f);
fclose(g);
return 0;
}
int main( )
{
ReadWords("c:\\a.txt"); return 0;
}
Kommentare (1)
ava
victor79 | 18.12.2016, 17:37 #
запись блока памяти в файл с указанием длины:
size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );
где ptr - указатель на записываемую память,
size - размер записываеммых данных,
count - количество блоков, указать равное 1
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden