Maison >développement back-end >C++ >Comment puis-je évaluer des expressions arithmétiques à partir de chaînes en C à l'aide d'ExprTk ?

Comment puis-je évaluer des expressions arithmétiques à partir de chaînes en C à l'aide d'ExprTk ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-20 13:15:10367parcourir

How Can I Evaluate Arithmetic Expressions from Strings in C   Using ExprTk?

Évaluation d'expressions arithmétiques à partir d'une chaîne en C

La tâche d'évaluation d'expressions arithmétiques simples à partir d'une chaîne peut être rencontrée dans divers contextes de programmation. Lors de l'exécution de l'évaluation, il est important de respecter l'ordre mathématique des opérations, comme la priorité de la multiplication sur l'addition.

Une solution largement recommandée consiste à exploiter la bibliothèque ExprTk :

Bibliothèque ExprTk

ExprTk est une bibliothèque légère d'en-tête uniquement C qui simplifie l'évaluation des expressions mathématiques à partir de chaînes. Voici ses principaux avantages :

  • Simplicité : Il fournit une interface simple avec un minimum de dépendances.
  • Fonctionnalité : Il prend en charge l'arithmétique de base opérations ( , -, *, /) et parenthèses.
  • Contrôle : Permet la modification dynamique des valeurs des variables dans l'expression.

Utilisation :

Pour utiliser ExprTk, suivez ces étapes :

  1. Inclure "exprtk.hpp" dans votre code source.
  2. Construisez un objet analyseur ExprTk.
  3. Analysez la chaîne d'expression dans l'analyseur.
  4. Évaluez l'expression analysée pour obtenir le résultat.

Exemple :

#include <exprtk.hpp>
using namespace exprtk;

int main() {
  // Create a parser
  parser<double> parser;

  // Parse the expression string
  parser.compile("3*2+4*1+(4+9)*6");

  // Evaluate the expression
  double result = parser.value();

  // Output the result
  std::cout << result << std::endl;
}

Ce code affichera le résultat correct : 87. ExprTk permet également de modifier les valeurs des variables dans l'expression, fournissant flexibilité et évaluation dynamique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn