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 arguments argc (le nombre d’arguments passés au programme) et argv (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 fonction write 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 vers char), 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 <unistd.h>

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 que argc est le nombre d’arguments et que argv est un tableau de chaînes de caractères (pointeurs vers char).
  • 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 fonction write 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 <unistd.h>

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;
}
				
			

📋 Les exercices de C06 :

Les projets C de la piscine 42 :

Retour en haut