Je suis en train de créer un programme pour inverser des lignes (chaque caractère) en utilisant getchar
. Voici ce que j'ai obtenu jusqu'à présent (mon code est un peu désordonné car je suis un débutant).
#include <stdio.h>
#define MAX_CH 256
int main(void)
{
int ch = 0;
int i = 0;
int string[MAX_CH] = {0};
while (ch != '\n')
{
ch = getchar();
string[i] = ch;
++i;
}
i = i - 2; // put i back to the position of the last character
int limit = i;
int n;
int reverse[MAX_CH] = {0};
for (n = 0; n <= limit; ++n)
{
reverse[n] = string[i];
--i;
}
for (n = 0; n <= limit; ++n)
{
printf("%c", reverse[n]);
}
return 0;
}
Ce code ne fonctionne cependant que pour une seule ligne. Je souhaite l'améliorer pour qu'il puisse lire et imprimer le texte inverse immédiatement après et fonctionner sur plusieurs lignes jusqu'à ce qu'il atteigne EOF. Comment puis-je faire cela ? J'ai essayé de mettre une boucle plus grande while (ch != EOF)
à l'extérieur while (ch != '\n')
mais cela n'a pas fonctionné.
Merci d'avance pour votre aide.