PROBLEMA conversione da stringa a float

Pubblicità

ilfe98

Utente Èlite
Messaggi
3,083
Reazioni
1,317
Punteggio
134
salve a tutti ho un esercizio che non riesco in alcun modo a risolvere.
Creare i file operazione.h e operazione.c che consentano di utilizzare la seguente funzione:
C:
extern double parse_operazione(const char *s);
la funzione accetta come unico parametro una stringa C contenente un’operazione aritmetica di somma, sottrazione, moltiplicazione o divisione. Il formato in cui vengono scritte le operazioni è fisso: in cui gli spazi e il simbolo dell’operazione occupano sempre un solo carattere. Quelli che seguono sono esempi di possibili stringhe:
"4.56 + 255.3"
"-3.55e-3 - -6.59"
"-5.73e2 * 8.448"
"11.34e-3 / -2.5554"
".23e7 - -99.76"
"11.34e-3 * -2.5554"
La funzione deve effettuare il parsing della stringa che le viene passata e restituire il risultato in un double. La stringa passata come parametro non sarà mai NULL e sarà sempre nel formato indicato.
Identificare l'operatore binario non è difficile,il problema è che non so affatto come copiare il contenuto del puntatore in un unica variabile per poter fare l'operazione e ritornare double ris.
Potreste aiutarmi per favore?
Ho estratto l'operatore cosi
C:
#include"prse_operazione.h"
double parse_operazione(const char *s){
    char c = 0;
    for (size_t = 0; s[i + 1] != 0; i++) {
        if (isspace(s[i]) && ispunct(s[i + 1])
           
{
            c = s[i + 1];
            break;
        }
}
}
    switch (c) {
        //qui ci mettero tutti i case ovvero "/ * + -"
    }
}
Ah non è un esercizio di scuola, mi serve per prepararmi all'esame
 
Ultima modifica:
Fai così

JavaScript:
char numero1[256];
char numero2[256];

float num1, num2;

strncpy(numero1, s, i);
strncpy(numero2, &s[i+1], strlen(s)-i));

num1 = atof(numero1);
num2 = atof(numero2);
 
Pubblicità
Pubblicità
Indietro
Top