Exercice 45
Énoncé
Écrire le programme précédent (exercice 44), sans utiliser le « formalisme tableau »
(il existe plusieurs solutions).
Voici deux solutions possibles :
a. On peut remplacer systématiquement la notation adr[i] par *(adr+i), ce qui conduit à
ce programme :
#include
using namespace std ;
main()
{
char * adr = "bonjour" ;
int i ;
for (i=0 ; i<3 ; i++) cout << *(adr+i) ;
cout << "\n" ;
i = 0 ;
while (adr[i]) cout << *(adr+i++) ;
}
b. On peut également parcourir notre chaîne, non plus à l’aide d’un « indice » i, mais
en incrémentant un pointeur de type char * : il pourrait s’agir tout simplement de adr,
mais généralement on préférera ne pas détruire cette information et en employer une
copie :
#include
using namespace std ;
main()
{
char * adr = "bonjour" ;
char * adb ;
for (adb=adr ; adb
cout << "\n" ;
adb = adr ;
while (*adb) cout << *(adb++) ;
}
Notez bien que si nous incrémentions directement adr dans la première instruction
d’affichage, nous ne disposerions plus de la « bonne adresse » pour la seconce
instruction d’affichage.
95
Énoncé
Écrire le programme précédent (exercice 44), sans utiliser le « formalisme tableau »
(il existe plusieurs solutions).
Voici deux solutions possibles :
a. On peut remplacer systématiquement la notation adr[i] par *(adr+i), ce qui conduit à
ce programme :
#include
using namespace std ;
main()
{
char * adr = "bonjour" ;
int i ;
for (i=0 ; i<3 ; i++) cout << *(adr+i) ;
cout << "\n" ;
i = 0 ;
while (adr[i]) cout << *(adr+i++) ;
}
b. On peut également parcourir notre chaîne, non plus à l’aide d’un « indice » i, mais
en incrémentant un pointeur de type char * : il pourrait s’agir tout simplement de adr,
mais généralement on préférera ne pas détruire cette information et en employer une
copie :
#include
using namespace std ;
main()
{
char * adr = "bonjour" ;
char * adb ;
for (adb=adr ; adb
adb = adr ;
while (*adb) cout << *(adb++) ;
}
Notez bien que si nous incrémentions directement adr dans la première instruction
d’affichage, nous ne disposerions plus de la « bonne adresse » pour la seconce
instruction d’affichage.
95
