Палиндром. Чтение из файла. Удаление знаков препинания - C (СИ)

Формулировка задачи:

Здравствуйте. Помогите исправить ошибку. Программа выполняет чтение из файла предложения, удаляет знаки препинания и получается одно длинное слово. Далее прог-ма проверяет его на палиндром ( палиндром слово читающееся одинаково в обоих направлениях) и выводит рез-т. Проблема в том,что результат проверки не верный.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//проверка на палиндром----------------------------------------
int check (char str[])
{
    int i,length;
    length=strlen(str);
    if (length==1) return 0; 
    for (i=0;i<length;i++)
    if (str[i]!=str[(length-1)-i]) return 0;
    return 1;
}
//конец проверки ----------------------------------------
 
int main()
{
    char str[80];
    FILE *file;
     
    if ((file=fopen("test.txt","r"))==NULL) {       
    puts("File not found!");
    return 1; }
     
    char *mass;
    mass = malloc(sizeof(char) * 1000);
    fgets(str,80,file);
    int i,j;        
    for(i = 0, j = 0; str[i]; ++i)
    {       
        if((str[i] >= ' ' && str[i] <= '/') || (str[i] >= ':' && str[i] <= '\\')|| (str[i] >= ',' && str[i] <= '_'))
            continue;
        mass[j] = str[i];
        j++;
    }
    printf("массив: %s\n", mass);
//---------------вызываем функцию проверки на палиндром
if (check(mass)==1)
            printf (" \n Слово: %s Палиндром \n", mass);
        else
            printf("\n Слово: %s Не палиндром \n",mass);
//-------------------------------------------------------
    free(mass); 
    return 0;
}

Код к задаче: «Палиндром. Чтение из файла. Удаление знаков препинания - C (СИ)»

textual
if((str[i] >= ' ' && str[i] <= '/') || (str[i] >= ':' && str[i] <= '\\')|| (str[i] >= ',' && str[i] <= '_') || str[i] == '\n')
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

15   голосов, оценка 4.133 из 5


СДЕЛАЙТЕ РЕПОСТ