void processing(char* fname_i, char* fname_r)
{
FILE* in, * out; //исходный и результирующий файлы (потоки)
char st_in[RAZ]; //обрабатываемая строка
char st_out[RAZ]; //результирующая строка
char* p = new char(RAZ); //указатель на выделенное слово
int deqsize, i, flag, size, j;
in = fopen(fname_i, PR_R); //открываем файл на чтение
out = fopen(fname_r, PR_W); //открываем файл на запись
fgets(st_in, RAZ, in); //читаем первую строку из файла in
while (!feof(in)) //пока не найден признак конца файла
{
st_out[0] = '\0'; //очищаем результирующую строку
p = strtok(st_in, " \n"); //выделяем первое слово (лексему).
while (p)
{
deqsize = strlen(p);
deque<string> myDeque(deqsize);
for (i = 0; i < deqsize; i++)
{
myDeque[i] = p[i];
}
size = myDeque.size();
j = 0;
while (j < size)
{
if (myDeque[j] == myDeque[(size - 1)- j])
{
j++;
}
}
if (j == size - 1)
{
for (i = 0; i < size; i++)
{
strcat(st_out, p);
}
strcat(st_out, " "); //добавляем пробел между слов
}
p = strtok(NULL, " \n"); //выделение последующих слов NULL
myDeque.clear();
}
st_out[strlen(st_out) - 1] = '\0'; //убираем последний пробел
if (strlen(st_out)) //если строка не пустая
fprintf(out, "%s\n", st_out); //записываем строку в новый файл
fgets(st_in, RAZ, in);
}
}