Моя задача - найти слова palindromes в текстовом файле и НЕ распечатывать их в файл результатов. Файл результатов должен содержать только все пробелы и слова, которые не являются палиндромами. Я работаю над этой программой в течение двух твердых недель, но поскольку я полный новичок в C, я не могу просто представить, как это сделать правильно. Кроме того, я должен работать в среде Linux, поэтому я не могу использовать команды, такие как strrev(), что сделало бы мою жизнь намного легче на данный момент ...Слово палиндром в C
Anyways, файл данных содержит много слов в много линий, разделенных довольно многими пробелами.
Это программа, которая работает, но не работает с любыми пространствами, потому что я не знаю, как их проверить в нужном месте.
#include <stdio.h>
#include <string.h>
const int CMAX = 1000;
const int Dydis = 256;
FILE *dataFile;
FILE *resFile;
void palindrome(char *linex);
int main(){
char duom[CMAX], res[CMAX], linex[Dydis];
printf("What's the name of data file? \n");
scanf("%s", duom);
dataFile=fopen(duom, "r");
if (dataFile==NULL){
printf ("Error opening data file \n");
return 0;
};
printf("What's the name of results file? \n");
scanf ("%s", res);
resFile=fopen(res, "w");
if (resFile==NULL){
printf ("Error opening results file \n");
return 0;
};
while (fgets(linex, sizeof(linex), dataFile)) {
palindrome(linex);
}
printf ("all done!");
fclose(dataFile);
fclose(resFile);
}
void palindrome(char *linex){
int i, wordlenght, j;
j = 0;
char *wordie;
const char space[2] = " ";
wordie = strtok(linex, space);
while (wordie != NULL) {
wordlenght = strlen(wordie);
if (wordie[j] == wordie[wordlenght-1]) {
for (i = 0; i < strlen(wordie); i++) {
if (wordie[i] == wordie[wordlenght-1]) {
if (i == strlen(wordie)-1) {
fprintf(resFile,"");
}
wordlenght--;
}
else {
fprintf(resFile,"%s", wordie);
break;
}
}
}
else {
fprintf(resFile,"%s", wordie);
}
wordie = strtok(NULL, space);
}
}
Вы имеете в виду палиндром, не так ли? – Praxeolitic
Что такое полидром? – gnasher729
Я как раз собирался реагировать так же ... как можно сделать программу на вещь, которую вы даже не можете написать: p – yakoudbz