08.04.2014 Views

Algorithmique et Langage - Pages de Michel Deloizy - Free

Algorithmique et Langage - Pages de Michel Deloizy - Free

Algorithmique et Langage - Pages de Michel Deloizy - Free

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

TD4 : CONVERSIONS ASCII / NUMÉRIQUES<br />

I. Écrire une fonction r<strong>et</strong>ournant un entier correspondant à la valeur numérique contenue dans une chaîne transmise<br />

en paramètre. Le prototype <strong>de</strong> c<strong>et</strong>te fonction sera :<br />

int AscToInt(const char *<strong>de</strong>cstr);<br />

C<strong>et</strong>te fonction pourra être utilisée par exemple <strong>de</strong> la manière suivante :<br />

...<br />

x = AscToInt("26789");<br />

...<br />

Dans ce cas, x prendra la valeur numérique 26789.<br />

a ⋅10<br />

+ b ⋅10<br />

+<br />

On rappelle qu'un nombre abc peut s'écrire : (( ) ) c<br />

II. Écrire une fonction équivalente à la précé<strong>de</strong>nte perm<strong>et</strong>tant <strong>de</strong> convertir un nombre écrit en binaire, dont le<br />

prototype sera :<br />

int AscBinToInt(const char *binstr);<br />

III. Faire <strong>de</strong> même pour un nombre écrit en hexadécimal.<br />

int AscHexToInt(const char *hexstr);<br />

IV. Que se passe-t-il si un caractère non prévu est contenu dans la chaîne ? Proposer un moyen <strong>de</strong> remédier à ce<br />

problème.<br />

TD5 : TRAITEMENTS SUR LES CHAÎNES<br />

I. Écrire une fonction comptant le nombre <strong>de</strong> caractères contenus dans une chaîne. Le prototype <strong>de</strong> c<strong>et</strong>te fonction<br />

sera :<br />

int strlen(const char *str);<br />

II.a. Écrire une fonction comptant le nombre <strong>de</strong> caractères i<strong>de</strong>ntiques x contenus dans une chaîne. Le prototype <strong>de</strong><br />

c<strong>et</strong>te fonction sera :<br />

int nbcar(char x, const char *str); /* recherche x dans str */<br />

II.b. Modifier la fonction précé<strong>de</strong>nte pour qu'elle ne différencie pas les minuscules <strong>et</strong> majuscules.<br />

III. Écrire une fonction perm<strong>et</strong>tant <strong>de</strong> comparer <strong>de</strong>ux chaînes <strong>de</strong> caractères. Le prototype <strong>de</strong> c<strong>et</strong>te fonction sera :<br />

int cmpstr(const char *str1, const char *str2);<br />

L'entier r<strong>et</strong>ourné sera positif si str2 est situé après str1 dans un classement alphabétique <strong>et</strong> 0 si les chaînes sont<br />

i<strong>de</strong>ntiques.<br />

IV. Écrire une fonction comptant le nombre <strong>de</strong> mots dans une phrase. Le prototype <strong>de</strong> c<strong>et</strong>te fonction sera :<br />

int nbmots(const char *str);<br />

Par exemple, si str contient " le p<strong>et</strong>it train passe dans l'alpage…\n " la fonction doit r<strong>et</strong>ourner la valeur 7.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!