:: Enseignements :: Licence :: L3 :: 2012-2013 :: Programmation C ::
| Quelques commandes |
L'objectif de ce TD est d'écrire en
C une version simplifiée des commandes
wc,
cut et
tr.
Contrainte pour la représentation des chaînes de caractères
Pour l'intégralité de ce TD, vos programmes devrons utiliser la structure suivante pour représenter les chaînes de caractères :
Exercice 1 - Conversion de char* vers String
Écrire une fonction permettant de convertir une chaîne de caractères classique (de type
char*) en une structure
String.
Attention : la chaîne d'origine devra être
copiée dans un nouvel espace mémoire.
Exercice 2 - Développement des commandes wc, cut et tr
Écrire trois programmes appelés
wc,
cut et
tr, et effectuant une version simplifiée des commandes de base correspondantes.
Chacune de ces commandes, utilisée via la ligne de commandes, recevra comme argument la chaîne de caractères à traiter, ainsi que les autres arguments le cas échéant.
Remarque : dans cet exercice, nous ne demandons pas de gestion de fichier, ni de gestion avancée des options.
-
Programme wc
Utilisation : wc 'CHAINE'
Description : Renvoie le nombre de lettres (caractères alphabétiques uniquement) et de mots dans CHAINE.
Exemple :
$ wc 'Chaîne de caractères, à traiter !'
Lettres = 26
Mots = 5
-
Programme cut
Utilisation : cut N 'SEPARATOR' 'CHAINE'
Description : Renvoie le N-ième champ de CHAINE, découpée selon le caractère SEPARATOR.
Exemple :
$ cut 3 '_' 'Ma_jolie_chaine,_picétoo_!'
chaine,
-
Programme tr
Utilisation : tr 'CHARS' 'CHAINE'
Description : Renvoie CHAINE, où tous les caractères de CHARS ont été retirés.
Exemple :
$ tr 'aep,' 'Ma jolie chaine, picétoo !'
M joli chin icétoo !
Exercice 3 - Compilation des programmes
Écrire un (unique) fichier
Makefile permettant de compiler les trois programmes créés ci-dessus.
L'ensemble du projet doit respecter l'arborescence standard des projets en langage
C, c'est-à-dire utilisant les dossiers
src/ (pour les fichiers source
.c),
include/ (pour les fichiers d'entête
.h),
bin/ (pour les exécutables compilés),
etc.
© Université de Marne-la-Vallée