Слова перевертыши (программа на С)
Дан текстовый документ с текстом.
Цель: слова палендромы (перевертыши) которые есть в тексте вывести на экран.
К примеру, дано предложение "Дед купил наган"
Сохраниться должно
"дед наган"
Вот мой текст программы, проблема в том что не сохраняются в файл слова:
Ошибка на мой взгляд кроется в выделенной /*****/ части.
#include
#include
#include
#include
#define MAXL_STRING 100
#define MAXL_WORD 100
void main()
{
char str[MAXL_WORD],str_all[MAXL_STRING],str0[]=" ";
char str1[MAXL_WORD],str2[MAXL_WORD];
int i,k=0,e=0,w_len,kslov,ksymb,s=0;
FILE *fin,*fout;
setlocale(LC_CTYPE,"Russian");
fin=fopen("d:\\String2.txt","r");
if(fin == NULL)
{ printf("Невозможно открыть файл String_2.txt\n"); exit(1); }
fout=fopen("d:\\String_2.out","w");
if(fout == NULL)
{ printf("Невозможно открыть файл string_2.out\n"); exit(1); }
fprintf(fout," Исходное предложение: \n");
printf(" Исходное предложение: \n");
kslov=ksymb=0;
while(fscanf(fin,"%s",str) != EOF)
{
w_len=strlen(str);
kslov++; ksymb+=w_len+1;
if(kslov == 1)
strcpy(str_all,str);
else
{
if(strlen(str_all) < (MAXL_STRING-1)) strcat(str_all,str0);
if((strlen(str_all)+w_len) <= (MAXL_STRING-1))
strcat(str_all,str);
else
{
fprintf(fout,"%s\n",str_all); printf("%s\n",str_all);
strcpy(str_all,str);
}
}
}
fprintf(fout,"%s\n",str_all); printf("%s\n",str_all);
fprintf(fout,"кол-во слов в предложении = %d\n",kslov);
printf("кол-во слов в предложении = %d\n",kslov);
fprintf(fout,"кол-во символов в предложении = %d\n\n",ksymb-1);
printf("кол-во символов в предложении = %d\n\n",ksymb-1);
if(fseek(fin,0L,SEEK_SET) != 0)
{ printf("Error seek: file stк2.txt\n"); exit(1); }
/********************************************************/
while(fscanf(fin,"%s",str1) != EOF)
{
strlwr(str1);
strcpy(str1,str2);
strrev(str2);
w_len=strlen(str1);
for (i=0; i
if (str1[i]==str2[i])
s++;
}
if (s==w_len){ for (i=0; i
fprintf(fout,"%s\n", str1);
printf("%s\n", str1);
}
}
}
/*****************************************************/