Apprendre la programmation en C
Un cours de C en ligne, gratuit et interactif. Tu écris du C à chaque leçon, avec des indices IA quand ça segfault, et un certificat gratuit à la fin.
123,799+ codders inscrits
- Adapté aux débutants
Aide au codage assistée par IA
Leçons interactives et pratiques
Narration audio dans chaque leçon
Quiz pour tester vos connaissances
Certificat gratuit de réussite
Programme
Section 1
Fundamentals
Commencer la sectionDémarrerDévelopperRéduireBuild a strong foundation with essential concepts and basic skillsIntroduction
4 leçons326- 01Langage CDéfi
- 02Hello World !DéfiQuiz
- 03CommentairesQuiz
- 04Structure de base d'un programmeDéfiQuiz
Variables
11 leçons1485- 01Types de donnéesDéfiQuiz
- 02EntiersDéfiQuiz
- 03Float - DoubleDéfiMaîtriseQuiz
- 04CaractèresDéfiQuiz
- 05BooléensDéfiMaîtriseQuiz
- 06ConstantesDéfiQuiz
- 07Les bases de printfDéfiQuiz
- 08Règles de nommage des variablesDéfiQuiz
- 09Type Casting Partie 1DéfiMaîtriseQuiz
- 10Type Casting Partie 2DéfiQuiz
- 11Défi récapitulatifDéfi
Opérateurs
9 leçons1161- 01Opérateurs arithmétiquesDéfiQuiz
- 02Opérateur moduloDéfiMaîtriseQuiz
- 03Incrémentation/DécrémentationDéfiQuiz
- 04Opérateurs d'affectationDéfiQuiz
- 05Opérateurs relationnelsDéfiQuiz
- 06Opérateurs logiques - Partie 1DéfiQuiz
- 07Opérateurs logiques - Partie 2DéfiQuiz
- 08Opérateurs logiques - Partie 3DéfiMaîtriseQuiz
- 09Défi récapitulatifDéfi
Structures de contrôle
7 leçons944- 01L'instruction IfDéfiQuiz
- 02If - ElseDéfiQuiz
- 03Else-IfDéfiMaîtriseQuiz
- 04Switch CaseDéfiMaîtriseQuiz
- 05Opérateur ternaireDéfiQuiz
- 06Défi récapitulatifDéfi
- 07If - Else imbriquésDéfiQuiz
Entrées & Sorties
5 leçons626- 01Spécificateurs de formatDéfiQuiz
- 02Bases de scanfDéfiMaîtriseQuiz
- 03Défi récapitulatif n°1Défi
- 04Validation des entréesDéfiQuiz
- 05Défi récapitulatif n°2Défi
Boucles
9 leçons1053- 01Boucle ForDéfiMaîtriseQuiz
- 02Boucle WhileDéfiQuiz
- 03Boucle Do WhileDéfiQuiz
- 04BreakDéfiQuiz
- 05ContinueDéfiQuiz
- 06Défi récapitulatif n°1Défi
- 07Boucles imbriquéesDéfiMaîtriseQuiz
- 08Boucles infiniesQuiz
- 09Défi récapitulatif n°2Défi
Fonctions
7 leçons1039- 01Déclarer une fonctionDéfiQuiz
- 02Types de retourDéfiMaîtriseQuiz
- 03ParamètresDéfiMaîtriseQuiz
- 04Défi récapitulatif n°1Défi
- 05Bases de la récursivitéDéfiMaîtriseQuiz
- 06Prototypes de fonctionDéfiQuiz
- 07Défi récapitulatif n°2Défi
Tableaux
8 leçons1247- 01Déclaration de tableauxDéfiQuiz
- 02Accès aux élémentsDéfiQuiz
- 03Modification d'élémentsDéfiMaîtriseQuiz
- 04Tableaux multidimensionnelsDéfiMaîtriseQuiz
- 05Défi récapitulatif n°1Défi
- 06Les tableaux comme arguments de fonctionDéfiMaîtriseQuiz
- 07Algorithmes de tableauxDéfiMaîtriseQuiz
- 08Défi récapitulatif n°2Défi
Défis finaux
3 leçons3- 01NotesDéfi
- 02PicsDéfi
- 03TVDéfi
Section 2
Logic & Flow
Commencer la sectionDémarrerDévelopperRéduireMaster advanced C programming with a focus on data structures and flow control. Learn to work with complex arrays, collections, error handling, and time management.Les bases des pointeurs
6 leçons540- 01Qu'est-ce qu'un pointeur ?Quiz
- 02Déclaration de pointeursDéfiQuiz
- 03L'opérateur d'adresse (&)DéfiQuiz
- 04L'opérateur de déréférencement (*)DéfiQuiz
- 05Pointeurs NULLDéfiQuiz
- 06Récapitulatif : Les bases des pointeursDéfi
Pointeurs et Tableaux
5 leçons531- 01Noms de tableaux comme pointeursDéfiQuiz
- 02Éléments de tableau - PointeursDéfiQuiz
- 03Arithmétique des pointeursDéfiQuiz
- 04Comparaison de pointeursDéfiQuiz
- 05Récapitulatif : Parcours de tableau par pointeurDéfi
Tableaux de caractères et chaînes
8 leçons858- 01Les chaînes comme tableaux de charDéfiQuiz
- 02Le terminateur nulDéfiQuiz
- 03Saisie de chaînes avec scanfDéfiQuiz
- 04Utilisation de strlen()DéfiQuiz
- 05Utilisation de strcpy()DéfiQuiz
- 06Utilisation de strcat()DéfiQuiz
- 07Utilisation de strcmp()DéfiQuiz
- 08Récapitulatif : Fonctions de base sur les chaînesDéfi
Projet : Utilitaire de texte simple
Projet5 leçons1- 01Présentation du projetDéfi
- 02Compter les caractèresProjet
- 03Compter les voyellesProjet
- 04Convertir en majusculesProjet
- 05Résultat finalProjet
Pointeurs et fonctions
6 leçons641- 01Passage par valeurDéfiQuiz
- 02Passage de pointeurs aux fonctionsDéfiQuiz
- 03Modifier des variables via des pointeursDéfiQuiz
- 04Un exemple classique : SwapDéfiQuiz
- 05Passage de tableaux aux fonctionsDéfiQuiz
- 06Récapitulatif : Pointeurs comme arguments de fonctionDéfi
Gestion de la mémoire
7 leçons652- 01Mémoire Pile vs TasQuiz
- 02Allocation dynamique - malloc()DéfiQuiz
- 03Utiliser sizeof() pour l'allocationDéfiQuiz
- 04Vérifier l'échec de l'allocationDéfiQuiz
- 05Libérer la mémoire avec free()DéfiQuiz
- 06Allouer avec calloc()DéfiQuiz
- 07Récapitulatif : Tableaux dynamiquesDéfi
Structures (structs)
6 leçons540- 01Qu'est-ce qu'une Struct ?Quiz
- 02Déclarer une StructDéfiQuiz
- 03Créer des variables de type StructDéfiQuiz
- 04Accéder aux membres d'une StructDéfiQuiz
- 05Initialiser des StructsDéfiQuiz
- 06Récapitulatif : Struct de données étudiantDéfi
Structures et Pointeurs
6 leçons643- 01Pointeurs vers des structuresDéfiQuiz
- 02L'opérateur flèche (->)DéfiQuiz
- 03Passage de structures par valeurDéfiQuiz
- 04Passage de pointeurs de structuresDéfiQuiz
- 05Allocation dynamique de structuresDéfiQuiz
- 06Récap : Modifier une structure - PtrDéfi
Projet : Saisie de contact simple
Projet5 leçons1- 01Projet : Définir la structure ContactDéfi
- 02Fonction pour créer un contactProjet
- 03Fonction pour remplir un contactProjet
- 04Fonction pour afficher un contactProjet
- 05Assembler le toutProjet
Énumérations et typedef
6 leçons640- 01enum pour les constantes nomméesDéfiQuiz
- 02Déclarer et utiliser des énumérationsDéfiQuiz
- 03Les énumérations dans les instructions switchDéfiQuiz
- 04Utiliser typedef pour les alias de typesDéfiQuiz
- 05typedef avec les structuresDéfiQuiz
- 06Récapitulatif : Pratique de typedef et enumDéfi
Défis de révision finale
3 leçons3- 01Récap : Concaténation dynamique de chaînesDéfi
- 02Récap : Tableau de structsDéfi
- 03Récap : Compteur de fréquence des motsDéfi
Section 3
Object Oriented Programming
Commencer la sectionDémarrerDévelopperRéduireDiscover how to organize code with classes, objects, and reusable structuresBases de la programmation modulaire
5 leçons433- 01Fichiers d'en-têteQuiz
- 02Gardes d'inclusionDéfiQuiz
- 03Fichiers sourcesDéfiQuiz
- 04Fonctions statiquesDéfiQuiz
- 05Récapitulatif : Calculatrice modulaireDéfi
Objets et méthodes
6 leçons642- 01Structs comme objetsDéfiQuiz
- 02Le pointeur 'Self'DéfiQuiz
- 03Rigueur du mot-clé constDéfiQuiz
- 04Pointeur vs ValeurDéfiQuiz
- 05Méthodes utilitairesDéfiQuiz
- 06Récapitulatif : Point ManagerDéfi
Cycle de vie des objets
5 leçons533- 01Pattern de constructeurDéfiQuiz
- 02Pattern de destructeurDéfiQuiz
- 03Initialisation sur la pileDéfiQuiz
- 04Copie profondeDéfiQuiz
- 05Récapitulatif : String WrapperDéfi
Encapsulation
5 leçons435- 01Concept des pointeurs opaquesQuiz
- 02Définir des structures opaquesDéfiQuiz
- 03Getters et settersDéfiQuiz
- 04Validation dans les settersDéfiQuiz
- 05Récapitulatif : La boîte secrèteDéfi
Projet : Compte bancaire simple
Projet6 leçons1- 01Configuration du projetDéfi
- 02Implémentation du compteProjet
- 03Logique de dépôtProjet
- 04Logique de retraitProjet
- 05Obtenir le soldeProjet
- 06Finalisation du projet : Boucle principaleProjet
Héritage par composition
5 leçons531- 01Imbrication de structDéfiQuiz
- 02La règle du premier membreDéfiQuiz
- 03Accès aux membres parentsDéfiQuiz
- 04UpcastingDéfiQuiz
- 05Récapitulatif : Hiérarchie des formesDéfi
Pointeurs sur fonctions
5 leçons534- 01Déclaration de pointeurs sur fonctionsDéfiQuiz
- 02Appel de pointeurs sur fonctionsDéfiQuiz
- 03Typedef pour les pointeurs sur fonctionsDéfiQuiz
- 04Passage de fonctions en argumentsDéfiQuiz
- 05Récapitulatif : Dispatcher de calculatriceDéfi
Polymorphisme
6 leçons641- 01Pointeurs de fonctions dans les structuresDéfiQuiz
- 02Simulation de méthodesDéfiQuiz
- 03Le concept d'interfaceDéfiQuiz
- 04Implémentation d'interfacesDéfiQuiz
- 05Itération polymorphiqueDéfiQuiz
- 06Récapitulatif : GreeterDéfi
Projet : Dessinateur de formes
Projet5 leçons1- 01Aperçu du projetDéfi
- 02Implémentation du cercleProjet
- 03Implémentation du rectangleProjet
- 04Utilisation polymorpheProjet
- 05Conteneur de formesProjet
Conteneurs génériques
5 leçons534- 01Rappel sur les pointeurs voidDéfiQuiz
- 02Wrapper génériqueDéfiQuiz
- 03Échange génériqueDéfiQuiz
- 04Comparaison génériqueDéfiQuiz
- 05Rappel : tableaux génériquesDéfi
Patrons de conception en C
4 leçons425- 01Patron SingletonDéfiQuiz
- 02Patron FabriqueDéfiQuiz
- 03Patron ItérateurDéfiQuiz
- 04Récapitulatif : Logger FactoryDéfi
Défis finaux
4 leçons48- 01Personnage de RPGDéfi
- 02Constructeur de chaînes dynamiqueDéfi
- 03Pile génériqueDéfi
- 04Système d'événementsDéfiQuiz
Cours de C
Cours pratiques de C, gratuits à démarrer dans votre navigateur.
Défis débutant - Pratiquez les concepts de base
PopulaireMettez à l'épreuve vos connaissances de base en programmation et tentez de résoudre ces défis. Utilisez le langage de votre choix, et bon code !平衡
Certificat à la fin
- 20
- 20
Problèmes de programmation
PopulaireMettez à l'épreuve vos compétences en résolution de problèmes de programmation grâce aux exercices de différents niveaux de difficulté de ce cours. Conçu pour les développeurs possédant déjà des connaissances de base sur la syntaxe d'un langage de programmation.
Certificat à la fin
- 32
- 31
Problèmes de programmation : Volume 2
Mettez à l'épreuve vos compétences en résolution de problèmes de programmation grâce aux exercices de différents niveaux de difficulté de ce cours. Conçu pour les développeurs ayant déjà des connaissances de base de la syntaxe d'un langage de programmation, ce cours est une extension du premier volet de Problèmes de programmation.
Certificat à la fin
- 25
- 24
Pile - Série sur les structures de données n°1
Dans ce cours, vous découvrirez la structure de données Pile, vous en créerez une de zéro en utilisant le langage de votre choix, et vous vous entraînerez avec des défis de programmation !
- 13
- 6
- 1
Tas et files de priorité - Série sur les structures de données n°7
NouveauDans ce cours, vous découvrirez la structure de données Tas (le pilier des files de priorité), vous créerez un MinHeap de zéro dans le langage de votre choix et vous vous entraînerez avec des défis de programmation !
Certificat à la fin
- 14
- 6
- 1
Bootcamp : Motifs d'étoiles
Mettez à profit vos compétences en résolution de problèmes pour apprendre à afficher des motifs d'étoiles, du plus simple au plus complexe, en utilisant des boucles imbriquées, des structures conditionnelles et des calculs mathématiques.
- 30
- 28
Pourquoi apprendre la programmation en C avec Coddy
- Écris et exécute du vrai code C dans ton navigateur. Pas de GCC à installer, pas de Makefile, pas de toolchain à configurer. Chaque exercice compile ton programme C côté serveur et t'affiche la sortie instantanément.
- Le C tel qu'on l'utilise vraiment : pointers et références, tableaux, chaînes, structs, mémoire dynamique avec
mallocetfree, I/O sur fichiers. Les bases du C dont tout programmeur système a besoin. - Les indices de l'IA t'aident à lire et corriger les erreurs du compilateur C et les segfaults, pour que le langage paraisse abordable plutôt que cryptique dès le premier jour.
- Certificat gratuit de programmation C à la fin du cours. Un vrai signal pour les postes en systèmes, embarqué, OS ou moteurs de jeu, où la maîtrise du C est attendue.