#include <iostream>
using namespace std;
void palindrome(char *s){
if (s[1] == 0)
{
return;
}
cout << s[0];
palindrome(++s);
cout << s[0];
}
int main(){
char s[30]="foobar";
palindrome(s);
cout << endl;
}
Je dois créer une fonction récursive qui transforme n'importe quelle chaîne en palindrome. C'est une question de devoirs et le seul code que je peux modifier est à l'intérieur de la fonction palindrome. Ce code fonctionne presque. Le problème est qu'il retourne "foobaraboo" et laisse la dernière lettre. Des conseils pour me diriger dans la bonne direction? J'ai joué avec le code pendant un certain temps et n'arrive pas à comprendre comment le changer pour que le dernier personnage du palindrome apparaisse.C++ Programme de récursion du créateur Palindrome
Est-ce que vous jouez avec le débogueur dans votre IDE? Parcourez-le et voyez ce qui se passe à la fin du mot. – nicomp
++ s change où s pointe, donc si vous le tracez, le second s [0] affichera un 'o' au lieu d'un 'f'. Vous voulez probablement s + 1 et non ++ s. – user222031