Bjr/bsr,
Je fais l'exercice 9.11 de ce tutoriel (chapitre pointeur) :
http://www.ltam.lu/Tutoriel_Ansi_C/
Le défaut (mineur) de ce tutoriel est de faire appel à gets alors
j'essaie de trouver des alternatives ce qui en tant que débutant ne
simplifie pas la progression. Mais je n'abandonne pas.
Bjr/bsr,
Je fais l'exercice 9.11 de ce tutoriel (chapitre pointeur) :
http://www.ltam.lu/Tutoriel_Ansi_C/
Le défaut (mineur) de ce tutoriel est de faire appel à gets alors
j'essaie de trouver des alternatives ce qui en tant que débutant ne
simplifie pas la progression. Mais je n'abandonne pas.
Bjr/bsr,
Je fais l'exercice 9.11 de ce tutoriel (chapitre pointeur) :
http://www.ltam.lu/Tutoriel_Ansi_C/
Le défaut (mineur) de ce tutoriel est de faire appel à gets alors
j'essaie de trouver des alternatives ce qui en tant que débutant ne
simplifie pas la progression. Mais je n'abandonne pas.
Bjr/bsr,
Je fais l'exercice 9.11 de ce tutoriel (chapitre pointeur) :http://www.lt am.lu/Tutoriel_Ansi_C/
Le défaut (mineur) de ce tutoriel est de faire appel à gets alors
j'essaie de trouver des alternatives ce qui en tant que débutant ne
simplifie pas la progression. Mais je n'abandonne pas.
Alors pour l'exercice qui demande de compter des lettres dans un
phrase voici mon code:
Bjr/bsr,
Je fais l'exercice 9.11 de ce tutoriel (chapitre pointeur) :http://www.lt am.lu/Tutoriel_Ansi_C/
Le défaut (mineur) de ce tutoriel est de faire appel à gets alors
j'essaie de trouver des alternatives ce qui en tant que débutant ne
simplifie pas la progression. Mais je n'abandonne pas.
Alors pour l'exercice qui demande de compter des lettres dans un
phrase voici mon code:
Bjr/bsr,
Je fais l'exercice 9.11 de ce tutoriel (chapitre pointeur) :http://www.lt am.lu/Tutoriel_Ansi_C/
Le défaut (mineur) de ce tutoriel est de faire appel à gets alors
j'essaie de trouver des alternatives ce qui en tant que débutant ne
simplifie pas la progression. Mais je n'abandonne pas.
Alors pour l'exercice qui demande de compter des lettres dans un
phrase voici mon code:
char maj[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
c'est pas vraiment plus long, et ca a l'avantage d'etre plus portable
(et perso, je trouve aussi que c'est plus lisible).
char maj[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
c'est pas vraiment plus long, et ca a l'avantage d'etre plus portable
(et perso, je trouve aussi que c'est plus lisible).
char maj[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
c'est pas vraiment plus long, et ca a l'avantage d'etre plus portable
(et perso, je trouve aussi que c'est plus lisible).
Marc Espie a écrit :char maj[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
c'est pas vraiment plus long, et ca a l'avantage d'etre plus portable
(et perso, je trouve aussi que c'est plus lisible).
Vu d'ici (Espagne), cela a un autre avantage¹ : on voit immédiatement
qu'il faudrait corriger ce code pour l'adapter aux circonstances !
En effet, en Espagne l'alphabet est différent, et si on peut passer sur
les cas particuliers de CH, LL et autres W, il est indispensable de
rajouter Ñ (entre N et O). Dans d'autres pays, vous auriez d'autres cas,
par exemple Á et autres voyelles longues comptées à part.
Ou meme ¼ en français ; mais me direz-vous, ¼ n'est pas une lettre à
part de l'alphabet : certes, et c'est là un problème du code initial
(qu'il n'est pas facile de résoudre), voire même de l'enoncé: il ne sait
pas traiter les caractères accentués, car il appelle «alphabet» ce qui
est en réalité un jeu (ensemble) de caractères, et devrait donc prendre
en compte plus de lettres que celles de l'alphabet au sens strict.
D'ailleurs Marc a rectifié (peut-être inconsciemment), en appelant «maj»
la variable que Pascal avait nommé «Abc»...
Bref, le code que propose Marc est une bonne habitude à prendre.
Seul détail, je n'aime pas le [26] ; en dehors du fait que cela va faire
tilter le compilo quand on rajoute la Ñ, cela supprime aussi le en
fin de tableau, donc cela peut amener de bêtes débordements de tampon,
en particulier si quelqu'un vient derrière et transforme le code pour
utiliser erronément strchr (à la place de memchr)... et aussi avec le
code de Pascal tel qu'il est, qui utilise un (inexistant) final dans
le tableau parcouru par pAbc pour en signaler la fin et donc sortir de
la boucle for(;*pAbc;)
Marc Espie a écrit :
char maj[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
c'est pas vraiment plus long, et ca a l'avantage d'etre plus portable
(et perso, je trouve aussi que c'est plus lisible).
Vu d'ici (Espagne), cela a un autre avantage¹ : on voit immédiatement
qu'il faudrait corriger ce code pour l'adapter aux circonstances !
En effet, en Espagne l'alphabet est différent, et si on peut passer sur
les cas particuliers de CH, LL et autres W, il est indispensable de
rajouter Ñ (entre N et O). Dans d'autres pays, vous auriez d'autres cas,
par exemple Á et autres voyelles longues comptées à part.
Ou meme ¼ en français ; mais me direz-vous, ¼ n'est pas une lettre à
part de l'alphabet : certes, et c'est là un problème du code initial
(qu'il n'est pas facile de résoudre), voire même de l'enoncé: il ne sait
pas traiter les caractères accentués, car il appelle «alphabet» ce qui
est en réalité un jeu (ensemble) de caractères, et devrait donc prendre
en compte plus de lettres que celles de l'alphabet au sens strict.
D'ailleurs Marc a rectifié (peut-être inconsciemment), en appelant «maj»
la variable que Pascal avait nommé «Abc»...
Bref, le code que propose Marc est une bonne habitude à prendre.
Seul détail, je n'aime pas le [26] ; en dehors du fait que cela va faire
tilter le compilo quand on rajoute la Ñ, cela supprime aussi le en
fin de tableau, donc cela peut amener de bêtes débordements de tampon,
en particulier si quelqu'un vient derrière et transforme le code pour
utiliser erronément strchr (à la place de memchr)... et aussi avec le
code de Pascal tel qu'il est, qui utilise un (inexistant) final dans
le tableau parcouru par pAbc pour en signaler la fin et donc sortir de
la boucle for(;*pAbc;)
Marc Espie a écrit :char maj[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
c'est pas vraiment plus long, et ca a l'avantage d'etre plus portable
(et perso, je trouve aussi que c'est plus lisible).
Vu d'ici (Espagne), cela a un autre avantage¹ : on voit immédiatement
qu'il faudrait corriger ce code pour l'adapter aux circonstances !
En effet, en Espagne l'alphabet est différent, et si on peut passer sur
les cas particuliers de CH, LL et autres W, il est indispensable de
rajouter Ñ (entre N et O). Dans d'autres pays, vous auriez d'autres cas,
par exemple Á et autres voyelles longues comptées à part.
Ou meme ¼ en français ; mais me direz-vous, ¼ n'est pas une lettre à
part de l'alphabet : certes, et c'est là un problème du code initial
(qu'il n'est pas facile de résoudre), voire même de l'enoncé: il ne sait
pas traiter les caractères accentués, car il appelle «alphabet» ce qui
est en réalité un jeu (ensemble) de caractères, et devrait donc prendre
en compte plus de lettres que celles de l'alphabet au sens strict.
D'ailleurs Marc a rectifié (peut-être inconsciemment), en appelant «maj»
la variable que Pascal avait nommé «Abc»...
Bref, le code que propose Marc est une bonne habitude à prendre.
Seul détail, je n'aime pas le [26] ; en dehors du fait que cela va faire
tilter le compilo quand on rajoute la Ñ, cela supprime aussi le en
fin de tableau, donc cela peut amener de bêtes débordements de tampon,
en particulier si quelqu'un vient derrière et transforme le code pour
utiliser erronément strchr (à la place de memchr)... et aussi avec le
code de Pascal tel qu'il est, qui utilise un (inexistant) final dans
le tableau parcouru par pAbc pour en signaler la fin et donc sortir de
la boucle for(;*pAbc;)
In article <hg5ae9$uic$,
Antoine Leca wrote:Marc Espie a écrit :char maj[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
Ouais, enfin bon. Je suis intentionnellement reste TRES loin des problemes
de locale et tout ce qui va avec.
A la limite, je consens a rajouter un commentaire
/* XXX not a C string */
char maj[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
In article <hg5ae9$uic$1@shakotay.alphanet.ch>,
Antoine Leca <root@localhost.invalid> wrote:
Marc Espie a écrit :
char maj[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
Ouais, enfin bon. Je suis intentionnellement reste TRES loin des problemes
de locale et tout ce qui va avec.
A la limite, je consens a rajouter un commentaire
/* XXX not a C string */
char maj[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
In article <hg5ae9$uic$,
Antoine Leca wrote:Marc Espie a écrit :char maj[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
Ouais, enfin bon. Je suis intentionnellement reste TRES loin des problemes
de locale et tout ce qui va avec.
A la limite, je consens a rajouter un commentaire
/* XXX not a C string */
char maj[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";