Heim >Backend-Entwicklung >C++ >Übersetzen Sie Folgendes ins Chinesische: C++-Programm zum Konvertieren von String in Float

Übersetzen Sie Folgendes ins Chinesische: C++-Programm zum Konvertieren von String in Float

WBOY
WBOYnach vorne
2023-09-13 11:57:021236Durchsuche

Übersetzen Sie Folgendes ins Chinesische: C++-Programm zum Konvertieren von String in Float

Statische Typisierung wird in C++ verwendet. Um ein Programm zu schreiben, müssen Variablen als bestimmte Typen definiert werden. Manchmal müssen Eingaben von der Konsole oder einer Datei gelesen werden. In diesem Fall werden dem Programm String-Daten übergeben. Um sie in andere Datentypen zu konvertieren, sind spezielle Operationen erforderlich. In diesem Artikel wird eine C++-Methode zum Konvertieren einer Zeichenfolge in eine Gleitkomma-Ganzzahl bereitgestellt. Es gibt verschiedene Methoden, mit denen Sie dies erreichen können. Erkunden Sie jeden von ihnen einzeln.

Verwenden von String-Streams in C++

Streams sind ein großartiges Werkzeug in C++. Beispiele für diese Streams sind Dateistreams, Standard-Eingabe-/Ausgabestreams usw. stringstream ist ein anderer Stream. Es funktioniert, indem es eine Zeichenfolge als Eingabe akzeptiert, ähnlich wie bei anderen Streams. Wir müssen die Sstream-Header-Datei importieren, um Stringstream verwenden zu können. Streaming-Daten können mit dem Einfügungsoperator (>>) oder dem Extraktionsoperator (

Grammatik

#include < sstream >
stringstream streamObject ( <a string input> );

Um einen bestimmten Eingabetyp mithilfe eines Streams zu lesen, lautet die Syntax wie folgt -

Grammatik

<data type> variable;
streamObject >> variable;

Algorithmus

Werfen wir einen Blick auf den Algorithmus, um zu verstehen, wie er insgesamt funktioniert.

  • Nehmen Sie das String-Objekt x als Eingabe
  • Erstellen Sie ein Stringstream-Objekt mit dem Namen ss und übergeben Sie x an das Objekt
  • Erstellen Sie eine Gleitkommavariable xFloat
  • Speichern Sie die Gleitkommazahl mithilfe des Einfügeoperators in ss in xFloat.

Beispiel

#include <iostream>
#include <sstream>

using namespace std;
float solve( string myString) {
   float x;
   stringstream ss( myString );
   ss >> x;
   return x;
}

int main()
{
   string aNumber = "3.14159";
   float convNumber = solve( aNumber );
   cout << "The given number is: " << convNumber << endl;
   cout << "6.5 more than the given number is: " << convNumber + 6.5 <<
   endl;
}

Ausgabe

The given number is: 3.14159
6.5 more than the given number is: 9.64159

Aus diesem Beispiel geht hervor, dass die Zahl von einem String-Objekt abgerufen wird. Da es sich um tatsächliche Gleitkommadaten handelt, können wir in Gleitkommaschreibweise 6,5 zu sich selbst addieren und das Ergebnis anzeigen.

Verwenden von sscanf() in C++

Ein vergleichbarer Ansatz (der auch in C funktioniert) ist die Verwendung der Funktion sscanf(). Diese Funktion akzeptiert ein Zeichenarray als Eingabe und eine Formatzeichenfolge, genau wie die Standardfunktion scanf(). Jetzt liest es den angeforderten Wert aus der Zeichenfolge und hängt ihn an die Variable an, auf die die Variablenadresse zeigt. Bitte beachten Sie die Syntax der Funktion sscanf().

Grammatik

scanf ( <a string input>, <format string>, address(s) of variable );

Algorithmus

Werfen wir einen Blick auf den Algorithmus, um zu verstehen, wie er insgesamt funktioniert.

  • Nehmen Sie die Zeichenfolge x als Eingabe im C-ähnlichen Zeichenarray-Format
  • Verwenden Sie die Funktion sscanf() mit den Parametern x, Formatzeichenfolge und Variablenadresse
  • Der Variablenwert wird direkt von der Funktion sscanf() gespeichert.

Beispiel

#include <iostream>
#include <sstream>

using namespace std;
float solve( string myString) {
   float x;
   sscanf( myString.c_str(), "%f", &x );
   return x;
}

int main()
{
   string aNumber = "6.8";
   float convNumber = solve( aNumber );
   cout << "The given number is: " << convNumber << endl;
   cout << "2.5 more than the given number is: " << convNumber + 2.5 <<
   endl;
}

Ausgabe

The given number is: 6.8
2.5 more than the given number is: 9.3

Die Anwendung funktioniert genauso wie zuvor, es gibt jedoch ein paar Dinge, auf die wir achten müssen. Die sscanf()-Methode unterstützt keine C++-ähnlichen String-Objekte. Es benötigt ein C-ähnliches Zeichenarray. Um dies zu erreichen, verwenden wir die Methode c_str(), um das bereitgestellte String-Argument in ein C-ähnliches Zeichenarray zu konvertieren.

Verwendung von stof() in C++

Die Verwendung der stof()-Methode aus der Header-Datei „Strings“ ist eine weitere schnelle und einfache Möglichkeit, einen String in eine Ganzzahl umzuwandeln. Diese Funktion konvertiert ein String-Objekt in die entsprechende Gleitkommazahl, nachdem es als Eingabe empfangen wurde.

Grammatik

#include <string>
stof ( <integer in string format> );

Algorithmus

  • Nehmen Sie das String-Objekt x als Eingabe
  • xFloat = stoi(x)
  • Gibt xFloat als Float-Variable aus der angegebenen Zeichenfolge x zurück.

Beispiel

#include <iostream>
#include <sstream>

using namespace std;
float solve( string myString) {
   float x;
   x = stof( myString );
   return x;
}

int main()
{
   string aNumber = "6.8";
   float convNumber = solve( aNumber );
   cout << "The given number is: " << convNumber << endl;
   cout << "2.5 more than the given number is: " << convNumber + 2.5 <<
   endl;
}

Ausgabe

The given number is: 6.8
2.5 more than the given number is: 9.3

Verwendung von atof() in C++

Obwohl atof() auch in C verfügbar ist, entspricht es stof. Zeichenfolgen können im Zeichenarray-Format übermittelt werden. Sie können es erhalten, indem Sie die cstdlib-Bibliothek importieren. Ansonsten gibt es keinen wirklichen Unterschied. Schauen wir uns die Syntax an.

Grammatik

#include <cstdlib>
atof ( <floating number in character array format> );

Algorithmus

  • Nehmen Sie das Zeichenfolgenobjekt x als Eingabe im Zeichenarray-Format der C-Sprache.
  • xFloat = atoi(x)
  • Gibt xFloat als Gleitkommavariable aus der angegebenen Zeichenfolge x zurück.

Beispiel

#include <iostream>
#include <sstream>

using namespace std;
float solve( string myString) {
   float x;
   x = atof( myString.c_str() );
   return x;
}

int main()
{
   string aNumber = "8.9";
   float convNumber = solve( aNumber );
   cout << "The given number is: " << convNumber << endl;
   cout << "6.5 more than the given number is: " << convNumber + 6.5 <<
   endl;
}

Ausgabe

The given number is: 8.9
6.5 more than the given number is: 15.4

Fazit

Es gibt mehrere Möglichkeiten, einen String in einen Float umzuwandeln. Die ersten beiden Methoden (mit stringstream und sscanf()) sind allgemeine Möglichkeiten, einen String in einen beliebigen Datentyp zu konvertieren, ohne etwas anderes zu ändern; stof() und atof() Diese Funktionen werden nur zum Konvertieren von Zeichenfolgen in Gleitkommazahlen verwendet. Andere Funktionen, die in andere Datentypen konvertieren, sind gleichwertig. Da es sich um C-basierte Funktionen handelt, akzeptieren sscanf und atof() keine String-Objekte. Bevor wir sie verwenden, müssen wir die Zeichenfolge mithilfe der Funktion c_str() in ein Zeichenarray konvertieren.

Das obige ist der detaillierte Inhalt vonÜbersetzen Sie Folgendes ins Chinesische: C++-Programm zum Konvertieren von String in Float. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen