J'ai essayé d'écrire une fonction en C qui détecte les palindromes. Le programme ressemble actuellement les éléments suivants:Diviser une chaîne en C en parties séparées
#include <stdio.h>
#include <string.h>
int main()
{
char palindrome[24]; int palength; int halflength;
gets(palindrome);
palength = strlen(palindrome);
halflength = palength/2;
printf("That string is %u characters long.\r\n", palength);
printf("Half of that is %u.\r\n", halflength);
return 0;
}
En ce moment, il détecte la longueur d'une chaîne, et montre aussi ce que la moitié de ce qui est. C'est juste pour m'assurer que cela fonctionne comme je le pense. Ce que le reste de la fonction devrait faire (si possible) est de prendre l'entier de "halflength" et l'utiliser pour enlever cette quantité de caractères du début et de la fin de la chaîne et les stocker dans des chaînes séparées. De là, je serais capable de comparer les personnages dans ceux-ci, et de pouvoir retourner vrai ou faux si la chaîne est en effet un palindrome. TL; DR - Est-il possible de prendre une certaine quantité de caractères (dans ce cas, l'entier "halflength") à l'avant et à la fin d'une chaîne et de les stocker dans des variables séparées. Lisez ci-dessus pour plus d'informations sur ce que j'essaie de faire.
P.S. - Je sais ne pas utiliser gets(), mais je n'ai pas envie d'écrire une fonction pour tronquer \ n de fgets().
Vous n'avez pas besoin d'une copie séparée de la chaîne pour détecter les palindromes. Astuce: vous itérez sur les caractères d'une chaîne à l'aide d'un pointeur et vous pouvez itérer à la fois vers l'avant et vers l'arrière. –
Pourquoi ne pas le faire de la manière classique, c'est-à-dire faire une itération du début à la fin de la chaîne, en comparant avec le caractère correspondant à la fin? –
Merci pour cela, n'a pas pensé à cette façon de faire les choses. Je voulais juste le faire pour le plaisir, et ce que j'avais commencé ci-dessus était ma première pensée. – austinprete