In C, Wie scanf verwendet wird, um in 1.000.000 zu scannen und die Kommas zu ignorieren

8

Was ist in C die beste Methode, um die Kommas zu ignorieren, wenn scanf für eine Zahl wie 1.000.000 verwendet wird?

    
Dizzzyp 07.04.2016, 06:03
quelle

2 Antworten

3

Es gibt mehrere Möglichkeiten, die Kommas zu entfernen (oder jedes andere Zeichen, das Sie überspringen möchten). Eine der einfachsten (und flexibelsten) Möglichkeiten besteht darin, einfach zwei Zeiger in der Eingabefolge nach unten zu bewegen, wobei alle Ziffern zusammen verschoben werden, wobei die Kommata ignoriert werden. (Sie müssen sicher sein, nul-terminate nach der letzten Ziffer).

Ein Beispiel wäre:

%Vor%

( Hinweis: xstrtol bietet lediglich eine Fehlerprüfung für die Konvertierung von string in long )

Verwendung / Ausgabe

%Vor%

Schau es dir an und lass es mich wissen, wenn du irgendwelche Fragen hast. Sie können gegen INT_MIN und INT_MAX prüfen, wenn Sie das Ergebnis in int umwandeln möchten, aber es ist ebenso einfach, die Antwort als long zu belassen.

Als Funktion

Wie bereits erwähnt, wäre es viel nützlicher als eine Funktion. Sie können den Code in eine einfache Konvertierungsfunktion verschieben und den Hauptcode wie folgt anpassen:

%Vor%     
David C. Rankin 07.04.2016, 07:26
quelle
14

Ich würde sagen, der beste Weg ist, nicht dafür scanf zu verwenden. Zumindest keine Zahlenformate verwenden.

Lesen Sie es stattdessen als Zeichenfolge, entfernen Sie dann die Kommas und schließlich in eine Zahl konvertieren >.

    
Some programmer dude 07.04.2016 06:07
quelle

Tags und Links