Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    100

    [c]dire se una stringa è un double

    ciao ragazzi devo fare una funzione che data una stringa
    mi dica ritorni 1 se è un double
    0 se non è un numero
    "23c3" return 0
    "23.3" return 1
    "23.3.4" return 0
    "25" return 1

    ho visto che esiste la atof solo che non ritorna errori nel caso in cui la stringa passata come argomento sia non un numero.
    idee?
    df

  2. #2
    Dai un'occhiata alla strtod.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [c]dire se una stringa è un double

    Originariamente inviato da esoni
    ho visto che esiste la atof solo che non ritorna errori nel caso in cui la stringa passata come argomento sia non un numero.
    idee?
    atof è deprecata, al suo posto dovresti usare strtod.

    Comunque potresti creare tu una tua funzione che verifica se una stringa è un double, non è difficile

    Scorri la stringa carattere per carattere e verifichi se è una cifra (con isdigit()). Se non lo è guardi se è il punto decimale. Se lo è ed è il primo punto che trovi bene, altrimenti c'è qualcosa che non va. Se non è un punto decimale ma un altro carattere non cifra la stringa non è un numero. Prova a farti questa funzioncina, sono una mezza dozzina di linee di codice
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    286

    Re: Re: [c]dire se una stringa è un double

    Originariamente inviato da Alex'87 Comunque potresti creare tu una tua funzione che verifica se una stringa è un double, non è difficile

    Scorri la stringa carattere per carattere e verifichi se è una cifra (con isdigit()). Se non lo è guardi se è il punto decimale. Se lo è ed è il primo punto che trovi bene, altrimenti c'è qualcosa che non va. Se non è un punto decimale ma un altro carattere non cifra la stringa non è un numero. Prova a farti questa funzioncina, sono una mezza dozzina di linee di codice
    Sono daccordo con Alex'87, varrebbe la pena costruirsi una funzioncina dedicata per lo scopo. Ulteriormente si potrebbe evitare isdigit() con un ciclo switch-case sul carattere, in modo da slegarsi dalle librerie utilizzando unicamente le potenzialità del linguaggio, sarebbe molto più didattico oltre che molto più prestazionale.

    Prova a postare qualcosa di tuo, anche se non funzionante, eventualmente (e tempo permettendo) ti possiamo mostrare come fare.

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.