Heim > Backend-Entwicklung > C++ > Hauptteil

Wie kann ich Strings in C in Double-Werte konvertieren und gleichzeitig nicht-numerische Eingaben verarbeiten?

Patricia Arquette
Freigeben: 2024-10-31 08:07:29
Original
926 Leute haben es durchsucht

How Can I Convert Strings to Double Values in C   while Handling Non-Numerical Inputs?

Konvertieren von Strings in Double-Werte in C

Problemstellung:

Konvertieren einer String-Darstellung einer Zahl in einen Gleitkomma-Double-Wert umwandeln. Wenn die Zeichenfolge nicht numerisch ist, geben Sie 0 zurück.

Lösung:

Um eine Zeichenfolge in C in einen Double-Wert umzuwandeln, können Sie die Funktion std::stod verwenden , das einen String-Parameter entgegennimmt und ihn in einen Double-Wert konvertiert. Diese Funktion gibt jedoch für nicht numerische Zeichenfolgen nicht 0 zurück.

Benutzerdefinierte Funktion für die nicht numerische Verarbeitung:

Um dieses Problem zu beheben, können wir eine benutzerdefinierte Funktion erstellen das gibt 0 für nicht numerische Zeichenfolgen zurück. Hier ist eine Implementierung:

<code class="cpp">#include <sstream>

double string_to_double(const std::string& s) {
  std::istringstream i(s);
  double x;
  if (!(i >> x)) {
    return 0;
  }
  return x;
}</code>
Nach dem Login kopieren

Diese Funktion verwendet std::istringstream, um den Double-Wert aus der Zeichenfolge zu extrahieren. Wenn die Extraktion fehlschlägt, wird 0 zurückgegeben.

Verwendungsbeispiele:

Hier sind einige Beispiele für die Verwendung der string_to_double-Funktion:

<code class="cpp">assert(0.5 == string_to_double("0.5"));
assert(0.5 == string_to_double("0.5 "));
assert(0.5 == string_to_double("0.5a"));
assert(0 == string_to_double("foobar"));</code>
Nach dem Login kopieren

Hinweis zu nicht numerischen Nullen:

Es ist wichtig Beachten Sie, dass diese Funktion nicht alle nicht numerischen Zeichenfolgen von Nullen unterscheiden kann. Beispielsweise werden die folgenden Zeichenfolgen gemäß dieser Implementierung alle als Nullen betrachtet:

  • "0"
  • "0."
  • "0.0"
  • " 0"
  • "-0"

Das obige ist der detaillierte Inhalt vonWie kann ich Strings in C in Double-Werte konvertieren und gleichzeitig nicht-numerische Eingaben verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage