Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C++]Verificare la correttezza sintattica di una stringa

    Cari forumisti esperti di C++,
    ho un gran bel problema, pertanto confido in voi.

    Ho bisogno di verificare se una stringa è conforme a questa sintassi:

    (OpNum)Suff(Fin) "Comm"

    Op = {<,<=,=,>=,>,<>};
    Num = numero intero non negativo;
    Suff = sequenza di caratteri alfabetici;
    Fin = sequenza di lettere separate da virgole;
    Comm = sequenza di caratteri qualunque.

    Esempio:

    (>=1)zion(e,i) "s f/sing,f/pl"
    Questa è valida!

    Grazie di cuore a tutti.
    Think global, act local.

  2. #2
    Per questi mestieri di solito si usano le regular expressions.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Se devo usare le Regular Expression in C++, mi sembra di dover ricorrere a componenti esterne.
    Questo non posso farlo. A quanto ho capito, C++ a differenza di altri linguaggi non prevede la possibilità di utilizzare le Regular Expression.

    Scartando le regular expression, Lei come farebbe?
    Una serie di if, cicli etc... alla prima non coerenza annullo tutto?

    Grazie ancora.

  4. #4
    Puoi costruirti una "macchina a stati" (cerca anche "automa cellulare" e "matrice di transizione").

  5. #5
    Si si conosco le macchine a stati finiti... derivate dal modello di Turing.
    Ma devo importare qualche classe esterna?

    Mi spieghi.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    106
    Ciao index,

    A quanto pare ASD si fa più complesso...
    Cmq hai due soluzioni:
    - Ulitizzare la libreria boost regex
    - Costruirti un FSA

    Ti consiglio di adottare la seconda, non è molto complesso da realizzare l'automa bastano 5 min con carta e penna e progettarlo!

  7. #7
    E' quello che ho deciso di fare alla fine.
    Progetto consegnato!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.