Не получается решить задачу.
Дана символьная строка, в которой слова перечислены через точку с запятой, а общая длина < 80. Найти и напечатать все слова, ко- торые представляют собой слово-палиндром.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Функция, проверяющая является ли слово палидромом
void isPalindrom (char word[]){
int length = strlen(word);
int i,j;
for (i = 0, j = length-1; i < j; i++, j--){
if (word[i] != word[j]){
printf(" - Не палидром");
return;
}
}
printf(" - Палидром");
}
int main(void){
//Инициализация переменных
char str[80];
char* word;
FILE *input;
//Проверка открытия файла
if((input = fopen("/Users/nilinadvlr/Desktop/lab5/lab5/stre.txt","r"))==NULL){
printf("Файл не открылся\n");
exit(1);
}
//Сканирование и вовыд строки
fscanf(input, "%s", str);
printf("Строка: %s", str);
//Разделение на отдельные слова
word=strtok(str,";");
//Анализ каждого слова
while (word != NULL) {
printf("\nСлово: %s",word);
isPalindrom(word);
word = strtok (NULL, ";");
}
printf("\n");
}
С английским алфавитом все работает правильно, но с русским алфавитом уже получается полный бред. В чем проблема. Мб надо кодировку файла менять или локализацию как то делать?