АВ
Анюта Воронина

Слова перевертыши (программа на С)

Дан текстовый документ с текстом.
Цель: слова палендромы (перевертыши) которые есть в тексте вывести на экран.
К примеру, дано предложение "Дед купил наган"
Сохраниться должно
"дед наган"
Вот мой текст программы, проблема в том что не сохраняются в файл слова:
Ошибка на мой взгляд кроется в выделенной /*****/ части.

#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);
}
}

}
/*****************************************************/

ММ
Михаил Медведев

#include
#include
#include
#include

#define MAX_LEN_WORD 80

int palindrom(char*);
void file();

int main() {
setlocale(0, "");
file();
getchar();
return 0;
}

int palindrom(char* word) {
int result = 1;
if (word) {
int end = strlen(word) - 1;
if (end) {
int beg = 0;
while (beg < end) {
if (word[beg] != word[end]) {
result = 0;
break;
}
++beg;
--end;
}
} else result = 0;
} else result = 0;
return result;
}

void file() {
char filename[] = "words.txt";
FILE * stream;
errno_t err = fopen_s(&stream, filename, "r");
if (err != 0) printf("\a Файл %s не существует!\n");
else {
char temp[MAX_LEN_WORD];
while (!feof(stream)) {
fscanf_s(stream, "%s", temp, MAX_LEN_WORD);
if (palindrom(temp)) printf("%s\n", temp);
}
fclose(stream);
}
}

Похожие вопросы
Программа:вводишь число и он выводит тебе его перевертыш в паскале
как определить перевертыш
расшифруйте "литературные перевертыши"
Расшифруте «литературные перевертыши».
С помощью какой. программы можно убрать слова из песни???
при помощи какой программы можно убрать слова из песни?
Интересно... политический перевертыш митрофанов... мало, что лезет из всех программ ТВ!
pascal программа - цифры в слове менять на первый символ того слова
Прочитайте слово МОРДОБОЙ наоборот и увидите что получится. А какие вы знаете слова перевертыши?
Как из песни убрать слова? Такая программа есть?