# Fonction ft\_print\_reverse\_alphabet

**URL:** <https://www.debian-fr.org/t/fonction-ft-print-reverse-alphabet/86334>\
**Category:** Programmation\
**Created:** [Avril 2, 2022, 1:07 UTC](https://www.debian-fr.org/t/fonction-ft-print-reverse-alphabet/86334 "2022-04-02T13:07:28Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Avril 2, 2022, 1:07 UTC](https://www.debian-fr.org/t/fonction-ft-print-reverse-alphabet/86334/1 "2022-04-02T13:07:28Z")

</div>

Bonsoir

J ai realise une fonction qui doit afficher l alphabet a partir de la lettre «&nbsp;z&nbsp;»

voici mon code :

```auto
#include <unistd.h>

void ft_print_reverse_alphabet (void);

void ft_putchar (char c)
{
write (1,&c,1);
}

int main ()

{
ft_print_reverse_alphabet ();

return 0;
}

void ft_print_reverse_alphabet (void)

{
char y;
y='z';
while (y>= 'a')
{
ft_putchar (y);
y--;
}
ft_putchar ('\n');
}

```

pendant l’exécution de mon programme j ai des point d’interrogation qui s affiche.  
Quelqu’un peux me dire ce qui cloche ?

NB: excusez moi je comprends toujours pas comment afficher la coloration du code

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Avril 2, 2022, 3:35 UTC](https://www.debian-fr.org/t/fonction-ft-print-reverse-alphabet/86334/2 "2022-04-02T15:35:42Z")

</div>

Bonjour,

Inspire toi plutôt de ça en considérant que ta chaine de caractère est «&nbsp;abcdefghijklmnopqrstuvwxyz&nbsp;»:

```auto
#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.

ensuite tu ecris ton code.

en simple, fait un algorithme d’abord.

---

<div class="post-metadata">

**Author:** ![vbreton](https://www.debian-fr.org/user_avatar/www.debian-fr.org/vbreton/32/11400_2.png) [@vbreton](https://www.debian-fr.org/u/vbreton)\
**Post date:** [Avril 11, 2022, 7:05 UTC](https://www.debian-fr.org/t/fonction-ft-print-reverse-alphabet/86334/3 "2022-04-11T19:05:18Z")

</div>

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 ?

---

<div class="post-metadata">

**Author:** ![Verner](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/34f0e0/32.png) [@Verner](https://www.debian-fr.org/u/Verner)\
**Post date:** [Juillet 29, 2022, 7:28 UTC](https://www.debian-fr.org/t/fonction-ft-print-reverse-alphabet/86334/4 "2022-07-29T19:28:18Z")

</div>

> [@Pat66](#):
>
> J ai realise une fonction qui doit afficher l alphabet a partir de la lettre « z »

` $ echo {z..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

```

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Juillet 29, 2022, 8:00 UTC](https://www.debian-fr.org/t/fonction-ft-print-reverse-alphabet/86334/5 "2022-07-29T20:00:55Z")

</div>

Bonjour

ASCII En décimal :

de `90` à `65` inclus pour les lettres `Z` à `A` \<=\> Majuscules  
de `122` à `97` inclus pour les lettres `z` à `a` \<=\> minuscules

* * *

ASCII en hexa-décimal :

de `5A` à `41` inclus pour les lettres `Z` à `A` \<=\> Majuscules  
de `7A` à `61` inclus pour les lettres `z` à `a` \<=\> minuscules

* * *

[La table des caractères ASCII est compatible UTF-8 et UNICODE](https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/)

Donc, vous pouvez vérifier dans votre fenêtre de terminal  
en entrant le [point de code](https://fr.wikipedia.org/wiki/Point_de_code) de la table [Unicode](https://www.utf8-chartable.de/) 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)

---

<div class="post-metadata">

**Author:** ![Verner](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/34f0e0/32.png) [@Verner](https://www.debian-fr.org/u/Verner)\
**Post date:** [Juillet 30, 2022, 7:25 UTC](https://www.debian-fr.org/t/fonction-ft-print-reverse-alphabet/86334/6 "2022-07-30T19:25:45Z")

</div>

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:

```auto
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
```

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Juillet 30, 2022, 7:34 UTC](https://www.debian-fr.org/t/fonction-ft-print-reverse-alphabet/86334/7 "2022-07-30T19:34:29Z")

</div>

> [@Verner](#):
>
> … A moins de vouloir réinventer le fil à couper le beurre …

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 😉

---

<div class="post-metadata">

**Author:** ![Verner](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/34f0e0/32.png) [@Verner](https://www.debian-fr.org/u/Verner)\
**Post date:** [Juillet 30, 2022, 7:46 UTC](https://www.debian-fr.org/t/fonction-ft-print-reverse-alphabet/86334/8 "2022-07-30T19:46:38Z")

</div>

> [@anon29980398](#):
>
> En général, quand tu suis une fomation

Possible «&nbsp;en général&nbsp;», 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 «&nbsp;formation&nbsp;», l’énoncé du sujet doit être sans ambiguïté.

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Juillet 30, 2022, 7:50 UTC](https://www.debian-fr.org/t/fonction-ft-print-reverse-alphabet/86334/9 "2022-07-30T19:50:12Z")

</div>

Disons que là, c’est un peu spécial : c’est la méthode pédagogique qui est différente.

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Juillet 30, 2022, 7:51 UTC](https://www.debian-fr.org/t/fonction-ft-print-reverse-alphabet/86334/10 "2022-07-30T19:51:59Z")

</div>

BOnsoir

Merci pos reponses mais juste pour info le probleme est resolu

---

<div class="post-metadata">

**Author:** ![Verner](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/34f0e0/32.png) [@Verner](https://www.debian-fr.org/u/Verner)\
**Post date:** [Juillet 30, 2022, 7:55 UTC](https://www.debian-fr.org/t/fonction-ft-print-reverse-alphabet/86334/11 "2022-07-30T19:55:37Z")

</div>

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 «&nbsp;en formation&nbsp;» (??), je lui souhaite d’avoir réussi sa «&nbsp;formation&nbsp;», en espérant de retenir qu’un problème bien posé est déjà la moitié de la solution.

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Juillet 30, 2022, 7:58 UTC](https://www.debian-fr.org/t/fonction-ft-print-reverse-alphabet/86334/12 "2022-07-30T19:58:27Z")

</div>

Bonsoir Verner

en effet je m 'initie a la programmation en autodidacte

---

<div class="post-metadata">

**Author:** ![moa](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/49beb7/32.png) [@moa](https://www.debian-fr.org/u/moa)\
**Post date:** [Août 29, 2022, 10:12 UTC](https://www.debian-fr.org/t/fonction-ft-print-reverse-alphabet/86334/13 "2022-08-29T10:12:45Z")

</div>

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,«&nbsp;zyx…cba&nbsp;»,26) fonctionne)

```auto
#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();
}
*/

```
