1. Le Décodeur de Trame (C++)

Testez votre code sur : OnlineGDB

Objectif & Mission

Extraire des données utiles depuis une chaîne de caractères brute (trame) reçue par un équipement. Copiez-collez le code de départ ci-dessous. En utilisant les méthodes de la bibliothèque <string> (comme find(), substr()) et les conversions (comme std::stof()), complétez les zones // TODO.

Code de départ (C++)

#include <iostream>
#include <string>

int main() {
    // Trame brute reçue par le système
    std::string trame = "$ID:R2D2;TEMP:45.5;STAT:ERR*";
    
    std::cout << "Analyse de la trame : " << trame << std::endl;
    std::cout << "-----------------------------------" << std::endl;

    // TODO 1 : Trouver la position de "TEMP:" et extraire la sous-chaîne de la température.
    
    // TODO 2 : Convertir cette chaîne en nombre à virgule (float).
    // Astuce : Cherchez comment utiliser std::stof()
    
    // TODO 3 : Extraire le code statut (les 3 lettres après "STAT:").
    
    // TODO 4 : Écrire une condition (if). 
    // Si la température dépasse 40.0 OU si le statut est "ERR", affichez "ALERTE CRITIQUE !".
    // Sinon, affichez "Système nominal."

    return 0;
}