<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 festgelegtios_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 vonin_stream
ist auf .ios_base::failbit
Ein anderer Fehler als die zuvor aufgeführten fehler; die interne Statuskennzeichnung von
in_stream
ist aufios_base::badbit
festgelegt.
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 getline
in_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 errno
oder der zurückgegebene Wert nicht als Objekt vom Typ int
dargestellt werden kann, löst er ein Objekt vom Typ out_of_range
aus. 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"
ifvalue
is of typeint
"%u"
ifvalue
is of typeunsigned int
"%ld"
ifvalue
is of typelong
"%lu"
ifvalue
is of typeunsigned long
"%lld"
ifvalue
is of typelong long
"%llu"
ifvalue
is of typeunsigned long long
"%f"
istvalue
vom Typ oderfloat
double
"%Lf"
ifvalue
is of typelong 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"
ifvalue
is of typeint
L"%u"
ifvalue
is of typeunsigned int
L"%ld"
ifvalue
is of typelong
L"%lu"
ifvalue
is of typeunsigned long
L"%lld"
ifvalue
is of typelong long
L"%llu"
ifvalue
is of typeunsigned long long
L"%f"
istvalue
vom Typ oderfloat
double
L"%Lf"
ifvalue
is of typelong double
Die Funktion gibt wstring(Buf)
zurück.