Создание кратчайшего палиндрома - C (СИ)
Формулировка задачи:
Пишу лабораторную, в задании указано написать функцию которая из заданного слова делала бы наименьший палиндром.
Функция создающая палиндром должна вернуть *char. У меня вроде бы все работает, но есть проблема с дописыванием куска палиндрома. Вот мой код
Если пытаться писать вот так, то получается ошибка, так как это строковая константа(я это в принципе предполагал). Как можно обойти данную ситуацию придерживаясь условия задания, что объявление функции должно иметь такой вид
#include <stdio.h> #include <string.h> #include <conio.h> char *makepal(char *word) { int i, j, strsize, partpalst=-1; char *finalpal = ""; strsize = strlen(word) - 1; for(i=0; i<=strsize; i++) { if(word[i]==word[strsize]) { for(j=i; j<=strsize; j++) { if(word[j]!=word[strsize-j+i]) break; else { if(j!=strsize-j+i) partpalst = i; } } if(partpalst!=-1) break; } } switch (partpalst) { case -1: finalpal = word; for(i=strsize-1; i>=0; i--) finalpal += finalpal[i]; break; case 0: finalpal = word; break; default: finalpal = word; j=0; for(i=strsize-1; i>partpalst; i--) finalpal +=word[i]; break; } return finalpal; } int main() { char *word = "flol", *result; result = makepal(word); printf("Palyndrom is: %s", result); getchar(); return 0; }
char* makepal(const char *)
Решение задачи: «Создание кратчайшего палиндрома»
textual
Листинг программы
const char *word1 = "this is word1"; char *word2 = word1; //<- ошибка
Объяснение кода листинга программы
- Объявляется переменная
word1
типаconst char*
и инициализируется строкойthis is word1
. - Объявляется переменная
word2
типаchar*
и инициализируется указателем наword1
. - В данном коде больше ничего не происходит.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д