strcmp ()
meiner Meinung nach, da es keine numerischen Konvertierungen benötigt. Aber in diesem Fall müssen Sie sicherstellen, dass einer von ihnen einen String speichert, der nur numerische Zeichen enthält.
Sie können auch memcmp ()
für die Zeichenfolge
EDIT1
Wie von anderen auf die führenden Nullen hingewiesen, können Sie die führenden Nullen manuell durchsuchen und strcmp ()
oder memcmp ()
aufrufen, indem Sie einen Zeiger auf die erste Ziffer ungleich Null übergeben.
EDIT2
Der folgende Code sagt, was ich sagen möchte. Dies ist nur für Ganzzahlen, nicht für Fließkommazahlen.
%Vor%Bei Gleitkommazahlen sollten die nachgestellten Nullen nach dem Dezimalpunkt manuell ausgeschnitten werden.
Oder machen Sie das ganze manuell.
EDIT4
Ich möchte auch, dass Sie sich diesen Code für Gleitkommazahlen anschauen. Dies erkennt führende Nullen vor dem Dezimaltrennzeichen und nachgestellte Nullen nach dem Dezimaltrennzeichen. Zum Beispiel
00000000000001.10000000000000
und 1.1
sind Equal
für den folgenden Code
Muss vor der Verwendung getestet werden.
Angenommen, Sie suchen nach identischen Informationen, wird strncmp
am schnellsten und sichersten sein, da es einen direkten Vergleich ohne Conversions ermöglicht. Es wird auch allgemein als sicherer angesehen als strcmp
.
Wenn Sie jedoch möchten, dass 00
und 0
gleich sind oder andere Möglichkeiten, die gleiche Zahl leicht anders darzustellen, müssen Sie atoi
verwenden.
Meiner Meinung nach wäre der "sicherste" Weg wahrscheinlich, beide Argumente in Ganzzahlen zu konvertieren und dann zu testen, da auf diese Weise das mögliche Problem der führenden Nullen vermieden wird. Es ist jedoch wahrscheinlich nicht die schnellste oder effizienteste Methode.
Sie können einfach Folgendes verwenden:
if (strcmp ("123", "123") == 0)
{
%Vor%}
else
{
%Vor%}
Meiner Meinung nach sollte es funktionieren.