Freigeben über


<string> -Funktionen

getline
stod
stof
stoi
stol
stold
stoll
stoul
stoull
swap
to_string
to_wstring

getline

Extrahiert Zeichenfolgen zeilenweise aus dem Eingabestream.

// (1) delimiter as parameter
template <class CharType, class Traits, class Allocator>
basic_istream<CharType, Traits>& getline(
    basic_istream<CharType, Traits>& in_stream,
    basic_string<CharType, Traits, Allocator>& str,
    CharType delimiter);

template <class CharType, class Traits, class Allocator>
basic_istream<CharType, Traits>& getline(
    basic_istream<CharType, Traits>&& in_stream,
    basic_string<CharType, Traits, Allocator>& str,
    const CharType delimiter);

// (2) default delimiter used
template <class CharType, class Traits, class Allocator>
basic_istream<CharType, Traits>& getline(
    basic_istream<CharType, Traits>& in_stream,
    basic_string<CharType, Traits, Allocator>& str);

template <class Allocator, class Traits, class Allocator>
basic_istream<Allocator, Traits>& getline(
    basic_istream<Allocator, Traits>&& in_stream,
    basic_string<Allocator, Traits, Allocator>& str);

Parameter

in_stream
Der Eingabestream, aus dem eine Zeichenfolge extrahiert werden soll.

str
Die Zeichenfolge, in die die Zeichen aus dem Eingabestream gelesen werden.

delimiter
Das Zeilentrennzeichen.

Rückgabewert

Der Eingabestream in_stream.

Hinweise

Das mit (1) markierte Funktionssignaturpaar extrahiert Zeichen aus in_stream bis delimiter gefunden wird, und speichert die Zeichen in str.

Das Als Standardzeilentrennzeichen markierte (2) Funktionssignaturen verwenden eine Neueline als Standardzeilentrennzeichen und verhalten sich wie getline(in_stream, str, in_stream. widen('\n')).

Die zweite Funktion der einzelnen Paare entspricht dem ersten, um Verweise zu unterstützen.rvalue

Die Extraktion wird beendet, sobald eines der folgenden Ereignisse eintritt:

  • Am Ende der Datei, in diesem Fall wird die interne Statuskennzeichnung in_stream auf festgelegt ios_base::eofbit.

  • Nachdem die Funktion ein Element extrahiert hat, das gleich ist delimiter. Das Element wird nicht zurückgesetzt oder an die kontrollierte Sequenz angefügt.

  • Nachdem die Funktion Elemente extrahiert str.max_size hat. Die interne Statuskennzeichnung von in_stream ist auf .ios_base::failbit

  • Ein anderer Fehler als die zuvor aufgeführten fehler; die interne Statuskennzeichnung von in_stream ist auf ios_base::badbitfestgelegt.

Informationen zu internen Statuskennzeichnungen finden Sie unter ios_base::iostate.

Wenn die Funktion keine Elemente extrahiert, wird das interne Statusflag von in_stream auf ios_base::failbit festgelegt. In jedem Fall gibt getlinein_stream zurück.

Wenn eine Ausnahme ausgelöst wird, bleiben in_stream und str in einem gültigen Zustand.

Beispiel

Der folgende Code zeigt getline() in zwei Modi: zuerst mit dem Standardtrennzeichen (newline) und dann mit einem Leerzeichen als Trennzeichen. Mit dem Dateiendezeichen (STRG-Z auf der Tastatur) wird die Beendigung der while-Schleifen gesteuert. Dieser Wert legt die interne Statuskennzeichnung von cin auf eofbit, mit der vor der zweiten Schleife gelöscht werden basic_ios::clear() muss, während die Schleife ordnungsgemäß funktioniert.

// compile with: /EHsc /W4
#include <string>
#include <iostream>
#include <vector>

using namespace std;

int main()
{
    string str;
    vector<string> v1;
    cout << "Enter a sentence, press ENTER between sentences. (Ctrl-Z to stop): " << endl;
    // Loop until end-of-file (Ctrl-Z) is input, store each sentence in a vector.
    // Default delimiter is the newline character.
    while (getline(cin, str)) {
        v1.push_back(str);
    }

    cout << "The following input was stored with newline delimiter:" << endl;
    for (const auto& p : v1) {
        cout << p << endl;
    }

    cin.clear();

    vector<string> v2;
    // Now try it with a whitespace delimiter
    while (getline(cin, str, ' ')) {
        v2.push_back(str);
    }

    cout << "The following input was stored with whitespace as delimiter:" << endl;
    for (const auto& p : v2) {
        cout << p << endl;
    }
}

stod

Konvertiert eine Zeichenfolge in ein double.

double stod(
    const string& str,
    size_t* idx = 0);

double stod(
    const wstring& str,
    size_t* idx = 0
;

Parameter

str
Die zu konvertierende Zeichenfolge.

idx
Der Indexwert des ersten Zeichens ohne Konvertierung.

Rückgabewert

Der double-Wert.

Hinweise

Die Funktion wandelt die Abfolge von Elementen in str einen Wert des Typs double um, _Eptr als wäre dies durch Aufrufen strtod( str.c_str(), _Eptr)eines Objekts intern für die Funktion. If str.c_str() == *_Eptr, it throws an object of type invalid_argument. Wenn solch ein Aufruf errno festlegt, wird ein Objekt vom Typ out_of_range ausgegeben. Andernfalls speichert die Funktion *_Eptr - str.c_str() den Wert, wenn idx es sich nicht um einen Nullzeiger handelt, in *idx und gibt den Wert zurück.

stof

Konvertiert eine Zeichenfolge in eine Float-Zahl.

float stof(
    const string& str,
    size_t* idx = 0);

float stof(
    const wstring& str,
    size_t* idx = 0);

Parameter

str
Die zu konvertierende Zeichenfolge.

idx
Der Indexwert des ersten Zeichens ohne Konvertierung.

Rückgabewert

Der float-Wert.

Hinweise

Die Funktion wandelt die Abfolge von Elementen in str einen Wert des Typs float um, _Eptr als wäre dies durch Aufrufen strtof( str.c_str(), _Eptr)eines Objekts intern für die Funktion. If str.c_str() == *_Eptr, it throws an object of type invalid_argument. Wenn solch ein Aufruf errno festlegt, wird ein Objekt vom Typ out_of_range ausgegeben. Andernfalls speichert die Funktion *_Eptr - str.c_str() den Wert, wenn idx es sich nicht um einen Nullzeiger handelt, in *idx und gibt den Wert zurück.

stoi

Konvertiert eine Zeichenfolge in eine Ganzzahl.

int stoi(
    const string& str,
    size_t* idx = 0,
    int base = 10);

int stoi(
    const wstring& str,
    size_t* idx = 0,
    int base = 10);

Rückgabewert

Der Ganzzahlwert.

Parameter

str
Die zu konvertierende Zeichenfolge.

idx
Der Indexwert des ersten Zeichens ohne Konvertierung.

base
Die zu verwendende Zahlenbasis.

Hinweise

Die Funktion stoi konvertiert die Abfolge von Zeichen in str in einen Typwert int und gibt den Wert zurück. Wenn beispielsweise die Zeichenfolge "10" übergeben wurde, ist der durch stoi zurückgegebene Wert die Ganzzahl 10.

stoi verhält sich ähnlich wie die Funktion strtol für Einzelbytezeichen, wenn sie in der Weise strtol( str.c_str(), _Eptr, idx)aufgerufen wird, wobei _Eptr es sich um ein Objekt innerhalb der Funktion handelt; oder wcstol für breite Zeichen, wenn sie in ähnlicher Weise wcstol(Str.c_str(), _Eptr, idx)aufgerufen wird. Weitere Informationen finden Sie unter strtol, , wcstol, . _wcstol_l_strtol_l

Wenn str.c_str() == *_Eptr, stoi löst ein Objekt vom Typ invalid_argument. Wenn ein solcher Aufruf festgelegt errnooder der zurückgegebene Wert nicht als Objekt vom Typ intdargestellt werden kann, löst er ein Objekt vom Typ out_of_rangeaus. Andernfalls speichert die Funktion *_Eptr - str.c_str() *idx, wenn idx kein Nullzeiger ist.

stol

Konvertiert eine Zeichenfolge in ein long.

long stol(
    const string& str,
    size_t* idx = 0,
    int base = 10);

long stol(
    const wstring& str,
    size_t* idx = 0,
    int base = 10);

Parameter

str
Die zu konvertierende Zeichenfolge.

idx
Der Indexwert des ersten Zeichens ohne Konvertierung.

base
Die zu verwendende Zahlenbasis.

Rückgabewert

Der lange ganzzahlige Wert.

Hinweise

Die Funktion wandelt die Abfolge von Elementen in str in einen Wert vom Typ long um, als wäre dies durch Aufrufen strtol( str.c_str(), _Eptr, idx), wobei _Eptr es sich um ein Objekt handelt, das für die Funktion intern ist. If str.c_str() == *_Eptr, it throws an object of type invalid_argument. Wenn solch ein Aufruf errno festlegt, wird ein Objekt vom Typ out_of_range ausgegeben. Andernfalls speichert die Funktion *_Eptr - str.c_str() den Wert, wenn idx es sich nicht um einen Nullzeiger handelt, in *idx und gibt den Wert zurück.

stold

Konvertiert eine Zeichenfolge in ein long double.

double stold(
    const string& str,
    size_t* idx = 0);

double stold(
    const wstring& str,
    size_t* idx = 0);

Parameter

str
Die zu konvertierende Zeichenfolge.

idx
Der Indexwert des ersten Zeichens ohne Konvertierung.

Rückgabewert

Der long double-Wert.

Hinweise

Die Funktion wandelt die Abfolge von Elementen in str in einen Wert vom Typ long double um, als wäre dies durch Aufrufen strtold( str.c_str(), _Eptr), wobei _Eptr es sich um ein Objekt handelt, das für die Funktion intern ist. If str.c_str() == *_Eptr, it throws an object of type invalid_argument. Wenn solch ein Aufruf errno festlegt, wird ein Objekt vom Typ out_of_range ausgegeben. Andernfalls speichert die Funktion *_Eptr - str.c_str() den Wert, wenn idx es sich nicht um einen Nullzeiger handelt, in *idx und gibt den Wert zurück.

stoll

Konvertiert eine Zeichenfolge in ein long long.

long long stoll(
    const string& str,
    size_t* idx = 0,
    int base = 10);

long long stoll(
    const wstring& str,
    size_t* idx = 0,
    int base = 10);

Parameter

str
Die zu konvertierende Zeichenfolge.

idx
Der Indexwert des ersten Zeichens ohne Konvertierung.

base
Die zu verwendende Zahlenbasis.

Rückgabewert

Der long long-Wert.

Hinweise

Die Funktion wandelt die Abfolge von Elementen in str in einen Wert vom Typ long long um, als wäre dies durch Aufrufen strtoll( str.c_str(), _Eptr, idx), wobei _Eptr es sich um ein Objekt handelt, das für die Funktion intern ist. If str.c_str() == *_Eptr, it throws an object of type invalid_argument. Wenn solch ein Aufruf errno festlegt, wird ein Objekt vom Typ out_of_range ausgegeben. Andernfalls speichert die Funktion *_Eptr - str.c_str() den Wert, wenn idx kein Nullzeiger ist, in *idx und gibt den Wert zurück.

stoul

Konvertiert eine Zeichenfolge in einen langen Wert ohne Vorzeichen.

unsigned long stoul(
    const string& str,
    size_t* idx = 0,
    int base = 10);

unsigned long stoul(
    const wstring& str,
    size_t* idx = 0,
    int base = 10);

Parameter

str
Die zu konvertierende Zeichenfolge.

idx
Der Indexwert des ersten Zeichens ohne Konvertierung.

base
Die zu verwendende Zahlenbasis.

Rückgabewert

Der lange ganzzahlige Wert ohne Vorzeichen.

Hinweise

Die Funktion wandelt die Abfolge von Elementen in str in einen Wert vom Typ unsigned long um, als wäre dies durch Aufrufen strtoul( str.c_str(), _Eptr, idx), wobei _Eptr es sich um ein Objekt handelt, das für die Funktion intern ist. If str.c_str() == *_Eptr, it throws an object of type invalid_argument. Wenn solch ein Aufruf errno festlegt, wird ein Objekt vom Typ out_of_range ausgegeben. Andernfalls speichert die Funktion *_Eptr - str.c_str() den Wert, wenn idx kein Nullzeiger ist, in *idx und gibt den Wert zurück.

stoull

Konvertiert eine Zeichenfolge in ein unsigned long long.

unsigned long long stoull(
    const string& str,
    size_t* idx = 0,
    int base = 10);

unsigned long long stoull(
    const wstring& str,
    size_t* idx = 0,
    int base = 10);

Parameter

str
Die zu konvertierende Zeichenfolge.

idx
Der Indexwert des ersten Zeichens ohne Konvertierung.

base
Die zu verwendende Zahlenbasis.

Rückgabewert

Der unsigned long long-Wert.

Hinweise

Die Funktion wandelt die Abfolge von Elementen in str in einen Wert vom Typ unsigned long long um, als wäre dies durch Aufrufen strtoull( str.c_str(), _Eptr, idx), wobei _Eptr es sich um ein Objekt handelt, das für die Funktion intern ist. If str.c_str() == *_Eptr, it throws an object of type invalid_argument. Wenn solch ein Aufruf errno festlegt, wird ein Objekt vom Typ out_of_range ausgegeben. Andernfalls speichert die Funktion *_Eptr - str.c_str() den Wert, wenn idx es sich nicht um einen Nullzeiger handelt, in *idx und gibt den Wert zurück.

swap

Tauscht die Arrays von Zeichen für zwei Zeichenfolgen aus.

template <class Traits, class Allocator>
void swap(basic_string<CharType, Traits, Allocator>& left, basic_string<CharType, Traits, Allocator>& right);

Parameter

left
Eine Zeichenfolge, deren Elemente mit den Elementen einer anderen Zeichenfolge ausgetauscht werden sollen.

right
Die andere Zeichenfolge, deren Elemente mit der ersten Zeichenfolge ausgetauscht werden sollen.

Hinweise

Die Vorlagenfunktion führt die spezielle Memberfunktion left.swap(right) für Zeichenfolgen aus, die eine konstante Komplexität garantiert.

Beispiel

// string_swap.cpp
// compile with: /EHsc
#include <string>
#include <iostream>

int main( )
{
   using namespace std;
   // Declaring an object of type basic_string<char>
   string s1 ( "Tweedledee" );
   string s2 ( "Tweedledum" );
   cout << "Before swapping string s1 and s2:" << endl;
   cout << "The basic_string s1 = " << s1 << "." << endl;
   cout << "The basic_string s2 = " << s2 << "." << endl;

   swap ( s1 , s2 );
   cout << "\nAfter swapping string s1 and s2:" << endl;
   cout << "The basic_string s1 = " << s1 << "." << endl;
   cout << "The basic_string s2 = " << s2 << "." << endl;
}
Before swapping string s1 and s2:
The basic_string s1 = Tweedledee.
The basic_string s2 = Tweedledum.

After swapping string s1 and s2:
The basic_string s1 = Tweedledum.
The basic_string s2 = Tweedledee.

to_string

Konvertiert einen Wert in einen string-Wert.

string to_string(int value);
string to_string(unsigned int value);
string to_string(long value);
string to_string(unsigned long value);
string to_string(long long value);
string to_string(unsigned long long value);
string to_string(float value);
string to_string(double value);
string to_string(long double value);

Parameter

value
Der zu konvertierende Wert.

Rückgabewert

Das string, das den Wert darstellt.

Hinweise

Die Funktion wandelt den Wert in eine Abfolge von Elementen um, die in einem Arrayobjekt Buf intern in der Funktion gespeichert sind, als wäre dies durch Aufrufen , sprintf(Buf, Fmt, value)wobei Fmt dies der Fall ist.

  • "%d" if value is of type int

  • "%u" if value is of type unsigned int

  • "%ld" if value is of type long

  • "%lu" if value is of type unsigned long

  • "%lld" if value is of type long long

  • "%llu" if value is of type unsigned long long

  • "%f"ist value vom Typ oder floatdouble

  • "%Lf" if value is of type long double

Die Funktion gibt string(Buf) zurück.

to_wstring

Konvertiert einen Wert in eine breite Zeichenfolge.

wstring to_wstring(int value);
wstring to_wstring(unsigned int value);
wstring to_wstring(long value);
wstring to_wstring(unsigned long value);
wstring to_wstring(long long value);
wstring to_wstring(unsigned long long value);
wstring to_wstring(float value);
wstring to_wstring(double value);
wstring to_wstring(long double value);

Parameter

value
Der zu konvertierende Wert.

Rückgabewert

Die breite Zeichenfolge, die den Wert darstellt.

Hinweise

Mit der Funktion wird value in eine Sequenz von Elementen konvertiert, die in einem für die Funktion internen Buf-Arrayobjekt gespeichert werden, als würde swprintf(Buf, Len, Fmt, value) aufgerufen, wobei Fmt Folgendem entspricht:

  • L"%d" if value is of type int

  • L"%u" if value is of type unsigned int

  • L"%ld" if value is of type long

  • L"%lu" if value is of type unsigned long

  • L"%lld" if value is of type long long

  • L"%llu" if value is of type unsigned long long

  • L"%f"ist value vom Typ oder floatdouble

  • L"%Lf" if value is of type long double

Die Funktion gibt wstring(Buf) zurück.

Siehe auch

<string>