Piscine 42 C06 : les exercices corrigés
Dans ce projet tu vas apprendre à manipuler les arguments du programme, à les afficher et à comprendre leur utilité dans le développement d’applications en C. Découvres ci-dessous les solutions détaillées et commentées pour le projet C06 de la Piscine de l’école 42.
C06 ex00 : ft_print_program_name
🎯 Objectif de ft_print_program_name
L’objectif de cet exercice est d’écrire un programme qui affiche le nom du programme lui-même, c’est-à-dire le nom de l’exécutable qui a été lancé. Ce programme devra simplement afficher le nom du fichier, suivi d’un retour à la ligne.
🎓 Notions essententielles
- Arguments de la fonction
main
: Comprendre les argumentsargc
(le nombre d’arguments passés au programme) etargv
(un tableau de chaînes de caractères contenant ces arguments). Ici,argv[0]
contient le nom du programme. - La fonction
write
: Utilisation de la fonctionwrite
pour afficher des chaînes de caractères sur la sortie standard.
💻 Fonctionnement de ft_print_program_name
Prototype de la fonction main
:
Le programme doit avoir la fonction main
avec les arguments classiques : int argc, char **argv
.
argc
est le nombre d’arguments passés au programme, y compris le nom du programme.argv
est un tableau de chaînes de caractères (pointeurs verschar
), oùargv[0]
contient le nom du programme.
Affichage du nom du programme :
Utiliser write
pour afficher la chaîne de caractères contenue dans argv[0]
, suivie d’un retour à la ligne.
✅ Le code de ft_print_program_name :
#include
int main(int argc, char **argv)
{
int i;
i = 0;
while (argv[0][i] != '\0')
{
write(1, &argv[0][i], 1);
i++;
}
write(1, "\n", 1);
return 0;
}
C06 ex01 : ft_print_params
🎯 Objectif de ft_print_params
L’objectif de cet exercice est d’écrire un programme qui affiche tous les arguments reçus en ligne de commande, un par ligne, dans l’ordre où ils sont passés au programme. Le programme ne doit pas afficher argv[0]
, qui contient le nom du programme lui-même, mais uniquement les arguments à partir de argv[1]
.
🎓 Notions essententielles
- Arguments de la fonction
main
: Comprendre queargc
est le nombre d’arguments et queargv
est un tableau de chaînes de caractères (pointeurs verschar
). - Boucles en C : Utiliser une boucle pour parcourir tous les arguments à partir de
argv[1]
jusqu’àargv[argc-1]
. - La fonction
write
: Utilisation de la fonctionwrite
pour afficher les chaînes de caractères sur la sortie standard, suivies d’un retour à la ligne.
💻 Fonctionnement de ft_print_params
Prototype de la fonction main
:
La fonction main
doit être définie avec les arguments int argc, char **argv
.
argc
est le nombre d’arguments, et argv
est un tableau de chaînes de caractères contenant ces arguments.
Boucle pour parcourir les arguments :
Utiliser une boucle for
pour parcourir les arguments de argv[1]
à argv[argc-1]
. Pour chaque argument, utiliser une deuxième boucle pour afficher chaque caractère avec write
, suivi d’un retour à la ligne.
✅ Le code de ft_print_params :
#include
int main(int argc, char **argv)
{
int i;
int j;
i = 1;
while (i < argc)
{
j = 0;
while (argv[i][j] != '\0')
{
write(1, &argv[i][j], 1);
j++;
}
write(1, "\n", 1);
i++;
}
return 0;
}