Allora:
codice:
bool IsPalindrome(char *Word)
{
int len = strlen(Word);
for(int i = 0; i < len; i++)
if(tolower(Word[i])!=tolower(Word[len-i-1])) return false;
return true;
}
char* MakePalindrome(char *Word)
{
int len = strlen(Word);
int i, j;
for(i = 0; i < len; i++)
if(IsPalindrome(Word+i)) break;
char *Palindrome = new char[len+i];
strcpy(Palindrome, Word);
for(j = 0; j < i; j++)
Palindrome[len+j] = Word[i-j-1];
Palindrome[len+j] = '\0';
return Palindrome;
}
La seconda funzione si basa sulla prima per ridurre al minimo la lunghezza della palindroma. Per esempio "cicala" invece di diventare "cicalalacic", diventa "cicalacic".