Algorithme et Programmation
IUP 1 - Année 2002/2003
TP n°7
Introduction
Les points abordés dans ce TP sont :
string
printf
et scanf
et le descripteur %s
Ce qui est à faire :
string
typedef
et en précisant le nombre maximum de caractères dans la chaine.#define NB_MAX_CHAR 255 typedef char string[NB_MAX_CHAR];
string
qui
fournit une multitude de fonctions
pratiques pour le traitement des chaînes de caractères.strlen(s)
fournit la longueur de la chaîne s
(sans compter le '\0' final)
strcpy(s,t)
copie t
vers s
strcat(s,t)
ajoute t
à la fin de s
strcmp(s,t)
compare s
et t
lexicographiquement et fournit un résultat :
s
précède t
s
est égal à t
s
suit t
man string
pour avoir la liste complète des fonctions.s
de type chaine de caractères dans la définition de ces fonctions, on note char *s
.char s[]
.
printf
(resp. scanf
) permet d'écrire (resp. lire) directement une chaine de caractères%s
.
Par exemple, on écrira :
printf("%s",ch);
pour écrire sur la sortie standard
la valeur courante d'une variable ch
de type chaine de caractères et
scanf("%s",&ch);
pour lire sur l'entrée standard une chaine de caractères
et affecter cette valeur à la variable ch
de type chaine de caractères.
Attention ! lors de la lecture d'une chaine avec scanf
:
la lecture s'arrête au premier caractère blanc
rencontré
(espace, retour à la ligne ou EOF)
et les caractères blancs au début de la chaine sont ignorés.
strlen
,
strcpy
, strcat
et
strcmp
strdemo.c
et expliquer ce que réalise ce programme.strdemo.c
, les appels à strcpy
sont-ils utiles ? Si oui, à quoi servent-ils ?
"marie"
est l'anagramme du mot "aimer"
"Eric à ciré"
et "élu par cette crapule"
sont deux palindromes"pru-den-ce est mè-re de sû-re-té"
est
"ce-den-pru est re-mè de té-sû-re"
"travailler"
, la fonction affiche :
je travaille tu travailles il travaille nous travaillons vous travaillez ils travaillent
Le but du jeu est de deviner un mot de 5 lettres choisi par l'ordinateur
dans un dictionnaire des mots de 5 lettres.
Après chaque proposition du joueur, l'ordinateur indique
quelles sont les lettres bien placées,
ainsi que les lettres
mal placées mais faisant partie du mot à trouver.
Le joueur a droit à au plus 6 propositions.
Une proposition du joueur doit être un mot du dictionnaire en majuscules,
sinon un beep retentit et l'ordinateur passe à la proposition suivante.
Exemple de déroulement du jeu :
----- [ ] AIDER A---- [ I] BATON A---- [ IA] AVION A-I-- [ A] ARIDE A-I-- [ A] ESSAI A-IA- [ S] ADIEU Perdu, le mot à trouver était ALIAS !(apparaîssent à l'écran, de gauche à droite :
Un autre exemple :
----- [ ] AIDER A---- [ E] BANAL A---- [ EN] ANNEE AN--E [ ] ANCHE Gagné !