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% 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 >.