Palindrome sur Linux sans bibliotheque specifique
Salut la Communaute!
Je suis entrain d'ecrire un programme en C qui doit retourner une sorte de palindrome, je m'explique:
-Voici un exemple! lorsque j'entre : ANNASUE
il doit me retourner ANNASUESANNA.
ca veut dire il prend le tableau initial : ptr = ANNASUE
le retourne et colle a la suite le palindrome(SUEANNA) mais sans les "UE"; sinon l'on aura ANNASUEEUSANNA;
ca devrait aussi fonctionner avec tout exemple comme : TENET donne au lieu de "TENETTENET" plutot TENETNET.
Je programme sur Linux et dans ce programme l'on ne doit point utiliser la bibliotheque <string.h> sinon ce serait trop facile(<-- a dit le prof :D):
voici le code que j'ai ecrit et que j'essaye resourdre en vain depuis quelques jours:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| #include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define Laenge 100
int strlen(char *string)
{
int len=0;
while (string[len] != '\0')
len ++;
return len;
}
char *move(char *dest, char *quelle)
{
int i=0,j=0,anzahl;
anzahl = strlen(quelle);
dest = (char *) malloc(2*anzahl-1);
for(i,j;i!='\0',j<anzahl;j++,i++)
{
dest[j]= quelle[i];
}
return dest;
}
char *palindrome(char *ptr)
{
char *ptr2=0;
int anzahl,i,j=1;
move(ptr2,ptr);
anzahl = strlen(ptr);
int grenze = 2*anzahl;
for (i = anzahl; i != '\0', j < grenze; i--,j++)
{
ptr2[j+anzahl]= ptr[i-3];
}
return ptr2;
}
int main()
{
char *my = 0;
char tab[Laenge];
printf("Geben sie Ihre String ein : ");
scanf("%s",&tab);
my = palindrome(tab);
printf("Zeichenkette = %s \n", my);
free(my);
return 0;
} |
Merci a tous ceux qui voudront y jeter un coup d'oeil.
Bon Weekend!