Inspire toi plutôt de ça en considérant que ta chaine de caractère est « abcdefghijklmnopqrstuvwxyz »:
#include <stdio.h>
int main()
{
char str[100], rev[100];
int t, i, j;
printf(" Entrez une chaîne de caractère : ");
gets(str);
j = 0;
t = strlen(str);
rev[t] = '\0'; //le dernier caractère doit toujours être égale à '\0'.
for (i = t - 1; i >= 0; i--)
{
rev[j++] = str[i];
}
rev[i] = '\0';
printf(" Chaîne de caractère après inversion = %s", rev);
return 0;
}
Après si c’est juste d’utiliser le code ascii d’un caracter:
a=65
z=91
Donc soit tu fait une boucle qui par de 91 jusque 65 et ca affiche de z à a. Ou l’inverse.
pour afficher le caractère à partir de son code ascii: printf("%c",codeAscii); ou putchar(codeAscii);
pense d’abord à bien écrire ce que tu veux faire. En texte simple. une ligne par action.
Bonsoir @Pat66,
J’ai testé ta routine sur ma machine Debian; elle affiche correctement l’alphabet à l’envers sans points d’interrogation. Quel terminal utilises-tu ? Ne forcerait-il pas les chars en caractères UTF-16 ?
Donc, vous pouvez vérifier dans votre fenêtre de terminal
en entrant le point de code de la table Unicode correspondant :
Tapez le raccourci clavier Ctrl+u (un U en minuscule)
et vous verrez alors s’afficher la lettre u (soulignée) qui vous invite à entrer le point de code :
Par exemple, entrez 41 et vous verrez apparaître la lettre A
Vous remarquerez aussi que l’écart entre
les lettres majuscules et leur correspondance en lettres minuscules
est de 20 (en hexa-décimal)
A moins de vouloir réinventer le fil à couper le beurre, les lettres de l’alphabet grec sont directement interprétées en utf-8, sans besoin de connaître leur code ASCII.
La recherche initiale: " fonction qui doit afficher l’alphabet à partir de la lettre « z »"
On peut toujours faire une fonction bash avec une commande:
function minmaj() { echo {z..a} ; echo {Z..A} ; }
$ minmaj
z y x w v u t s r q p o n m l k j i h g f e d c b a
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
En général, quand tu suis une fomation, tu fais ce qu’on te demande,
même si ce qu’on te demande c’est d’essayer de ré-écrire toutes les fonctions du langage C ou des exercices qui ne servent apparemment à rien, comme dans certaines écoles
Possible « en général », mais non précisé dans ce cas précis, même en relisant, ce pourquoi j’ai citer la question initiale.
En général, il est aussi bon de se poser la question si l’outil ou méthode utilisés pour résoudre un problème est le bon.
Et en général en « formation », l’énoncé du sujet doit être sans ambiguïté.
Presque passionnant tout ce débat sur une hypothétique formation (pas compris d’où ça vient.).
Comme je n’avais saisi que Pat66 était « en formation » (??), je lui souhaite d’avoir réussi sa « formation », en espérant de retenir qu’un problème bien posé est déjà la moitié de la solution.
c’est des exos de 42 ca nn ? perso j’avais utiliser la table ascii pcq si c’est pour la bas que tu t’entraine tu auras le droit que a la fonction write (meme si faire un write(1,« zyx…cba »,26) fonctionne)
#include <unistd.h>
void ft_print_reverse_alphabet(void)
{
char i;
i = 122;
while (i > 96)
{
write(1, &i, 1);
i--;
}
}
/*
int main()
{
ft_print_reverse_alphabet();
}
*/