Frage

Ich versuche, reelle Zahlen in einem C-Programm zu spalten den Dezimalpunkt als delimter mit, so dass eine solche, die sagen, 1234.56 Ausbeuten

(int) whole_num = 1234 (Int) fraction = 56

Irgendwelche Ideen, wie ich über das tun dies gehen kann? Es ist schon eine Weile her, seit ich loooong mit C muckte um, sehen Sie? :)

War es hilfreich?

Lösung

void split( double num, int& whole_number, double& fraction) {
    fraction = modf(num, &whole_number);
}

Das funktioniert seit modf den ganzzahligen Teil des Doppel nimmt und gibt den Bruchteil.

Andere Tipps

Angenommen, Sie eine Zeichenfolge teilen möchten.

strtok_r und Ihre Lieblings String-to-num-Funktion wie strtol

Wenn Sie mit einem tatsächlichen Gleitkommazahl zu tun hat, als solcher zu einer String-Darstellung gegenüber, sollten Sie eine href verwenden <= "http://www.opengroup.org/onlinepubs/009695399/functions/modf .html“rel = "nofollow noreferrer"> modf zum Spalten aus den Integral- und Bruchteilen.

Perl split spaltet von regex, so die volle Funktionalität replizieren Sie eine regex Bibliothek benötigen würde. Für allgemeines String-Splitting, können Sie in der Lage sein zu verwenden strtok , sondern weil es die Zeichenfolge an Ort und Stelle ändert, strtok_r (auf der gleichen Seite beschrieben) wird empfohlen, statt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top