Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Rubriken <string> innehåller följande funktioner:
getline
Extrahera strängar från indataströmmen rad för rad.
// (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);
Parameterar
in_stream
Den indataström som en sträng ska extraheras från.
str
Strängen som läse tecknen från indataströmmen.
delimiter
Linje avgränsare.
Returvärde
Indataströmmen in_stream.
Anmärkningar
Det par med funktionssignaturer som markerats (1) extrahera tecken från in_stream tills de hittas delimiter och lagrar dem i str.
Det par med funktionssignaturer som markerats (2) använder newline som standardlinjegränsare och beter sig som getline(in_stream, str, in_stream. widen('\n')).
Den andra funktionen för varje par är en analog till den första som stöder rvalue referenser.
Extrahering stoppas när något av följande inträffar:
I slutet av filen, i vilket fall den interna tillståndsflaggan
in_streamför är inställd påios_base::eofbit.När funktionen extraherar ett element som jämförs med
delimiter. Elementet läggs inte tillbaka eller läggs till i den kontrollerade sekvensen.När funktionen har extraherat
str.max_sizeelement. Den interna tillståndsflagganin_streamför är inställd påios_base::failbit.Andra fel än de som tidigare angavs. den interna tillståndsflaggan
in_streamför är inställd påios_base::badbit.
Information om interna tillståndsflaggor finns i ios_base::iostate.
Om funktionen inte extraherar några element är den interna tillståndsflaggan in_stream inställd på ios_base::failbit. I vilket fall getline som helst returnerar in_stream.
Om ett undantag utlöses in_stream och str lämnas i ett giltigt tillstånd.
Exempel
Följande kod visas getline() i två lägen: först med standardgränsaren (ny rad) och den andra med ett blanksteg som avgränsare. Filsluttecknet (CTRL-Z på tangentbordet) används för att styra avslutningen av while-looparna. Det här värdet anger den interna tillståndsflaggan cin för till eofbit, som måste rensas med basic_ios::clear() före den andra medan-loopen fungerar korrekt.
// 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
Konverterar en teckensekvens till en double.
double stod(
const string& str,
size_t* idx = 0);
double stod(
const wstring& str,
size_t* idx = 0);
Parameterar
str
Teckensekvensen som ska konverteras.
idx
Indexvärdet för det första okonverterade tecknet.
Returvärde
Värdet double.
Anmärkningar
Funktionen konverterar sekvensen av element till str ett värde av typen double som genom att anropa strtod( str.c_str(), _Eptr), där _Eptr är ett objekt som är internt för funktionen. Om str.c_str() == *_Eptrgenererar det ett objekt av typen invalid_argument. Om ett sådant anrop skulle ställas in errnogenererar det ett objekt av typen out_of_range. Annars, om idx inte är en nullpekare, lagrar *_Eptr - str.c_str() funktionen i *idx och returnerar värdet.
stof
Konverterar en teckensekvens till en flyttal.
float stof(
const string& str,
size_t* idx = 0);
float stof(
const wstring& str,
size_t* idx = 0);
Parameterar
str
Teckensekvensen som ska konverteras.
idx
Indexvärdet för det första okonverterade tecknet.
Returvärde
Värdet float.
Anmärkningar
Funktionen konverterar sekvensen av element till str ett värde av typen float som genom att anropa strtof( str.c_str(), _Eptr), där _Eptr är ett objekt som är internt för funktionen. Om str.c_str() == *_Eptrgenererar det ett objekt av typen invalid_argument. Om ett sådant anrop skulle ställas in errnogenererar det ett objekt av typen out_of_range. Annars, om idx inte är en nullpekare, lagrar *_Eptr - str.c_str() funktionen i *idx och returnerar värdet.
stoi
Konverterar en teckensekvens till ett heltal.
int stoi(
const string& str,
size_t* idx = 0,
int base = 10);
int stoi(
const wstring& str,
size_t* idx = 0,
int base = 10);
Returvärde
Heltalsvärdet.
Parameterar
str
Teckensekvensen som ska konverteras.
idx
Indexvärdet för det första okonverterade tecknet.
base
Den talbas som ska användas.
Anmärkningar
Funktionen stoi konverterar teckensekvensen i str till ett värde av typen int och returnerar värdet. När det till exempel skickas en teckensekvens "10" är det värde som returneras av stoi heltal 10.
stoi fungerar på samma sätt som funktionen strtol för en byte-tecken när den anropas på det sätt strtol( str.c_str(), _Eptr, idx), där _Eptr är ett objekt som är internt för funktionen, eller wcstol för breda tecken, när det anropas på liknande sätt, wcstol(Str.c_str(), _Eptr, idx). Mer information finns i strtol, wcstol, _strtol_l, _wcstol_l.
Om str.c_str() == *_Eptr, stoi genererar ett objekt av typen invalid_argument. Om ett sådant anrop skulle ange errno, eller om det returnerade värdet inte kan representeras som ett objekt av typen int, genererar det ett objekt av typen out_of_range. Om idx inte är en null-pekare lagras *_Eptr - str.c_str() annars funktionen i *idx.
stol
Konverterar en teckensekvens till en 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);
Parameterar
str
Teckensekvensen som ska konverteras.
idx
Indexvärdet för det första okonverterade tecknet.
base
Den talbas som ska användas.
Returvärde
Det långa heltalsvärdet.
Anmärkningar
Funktionen konverterar sekvensen av element i str till ett värde av typen long som genom att anropa strtol( str.c_str(), _Eptr, idx), där _Eptr är ett internt objekt för funktionen. Om str.c_str() == *_Eptrgenererar det ett objekt av typen invalid_argument. Om ett sådant anrop skulle ställas in errnogenererar det ett objekt av typen out_of_range. Annars, om idx inte är en nullpekare, lagrar *_Eptr - str.c_str() funktionen i *idx och returnerar värdet.
stold
Konverterar en teckensekvens till en long double.
double stold(
const string& str,
size_t* idx = 0);
double stold(
const wstring& str,
size_t* idx = 0);
Parameterar
str
Teckensekvensen som ska konverteras.
idx
Indexvärdet för det första okonverterade tecknet.
Returvärde
Värdet long double.
Anmärkningar
Funktionen konverterar sekvensen av element i str till ett värde av typen long double som genom att anropa strtold( str.c_str(), _Eptr), där _Eptr är ett internt objekt för funktionen. Om str.c_str() == *_Eptrgenererar det ett objekt av typen invalid_argument. Om ett sådant anrop skulle ställas in errnogenererar det ett objekt av typen out_of_range. Annars, om idx inte är en nullpekare, lagrar *_Eptr - str.c_str() funktionen i *idx och returnerar värdet.
stoll
Konverterar en teckensekvens till en 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);
Parameterar
str
Teckensekvensen som ska konverteras.
idx
Indexvärdet för det första okonverterade tecknet.
base
Den talbas som ska användas.
Returvärde
Värdet long long.
Anmärkningar
Funktionen konverterar sekvensen av element i str till ett värde av typen long long som genom att anropa strtoll( str.c_str(), _Eptr, idx), där _Eptr är ett internt objekt för funktionen. Om str.c_str() == *_Eptrgenererar det ett objekt av typen invalid_argument. Om ett sådant anrop skulle ställas in errnogenererar det ett objekt av typen out_of_range. Annars, om idx inte är en null-pekare, lagrar *_Eptr - str.c_str() funktionen i *idx och returnerar värdet.
stoul
Konverterar en teckensekvens till en osignerad lång.
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);
Parameterar
str
Teckensekvensen som ska konverteras.
idx
Indexvärdet för det första okonverterade tecknet.
base
Den talbas som ska användas.
Returvärde
Det osignerade lång heltalsvärdet.
Anmärkningar
Funktionen konverterar sekvensen av element i str till ett värde av typen unsigned long som genom att anropa strtoul( str.c_str(), _Eptr, idx), där _Eptr är ett internt objekt för funktionen. Om str.c_str() == *_Eptrgenererar det ett objekt av typen invalid_argument. Om ett sådant anrop skulle ställas in errnogenererar det ett objekt av typen out_of_range. Annars, om idx inte är en null-pekare, lagrar *_Eptr - str.c_str() funktionen i *idx och returnerar värdet.
stoull
Konverterar en teckensekvens till en 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);
Parameterar
str
Teckensekvensen som ska konverteras.
idx
Indexvärdet för det första okonverterade tecknet.
base
Den talbas som ska användas.
Returvärde
Värdet unsigned long long.
Anmärkningar
Funktionen konverterar sekvensen av element i str till ett värde av typen unsigned long long som genom att anropa strtoull( str.c_str(), _Eptr, idx), där _Eptr är ett internt objekt för funktionen. Om str.c_str() == *_Eptrgenererar det ett objekt av typen invalid_argument. Om ett sådant anrop skulle ställas in errnogenererar det ett objekt av typen out_of_range. Annars, om idx inte är en nullpekare, lagrar *_Eptr - str.c_str() funktionen i *idx och returnerar värdet.
swap
Utbyter matriserna med tecken i två strängar.
template <class Traits, class Allocator>
void swap(basic_string<CharType, Traits, Allocator>& left, basic_string<CharType, Traits, Allocator>& right);
Parameterar
left
En sträng vars element ska växlas med elementen i en annan sträng.
right
Den andra strängen vars element ska växlas med den första strängen.
Anmärkningar
Mallfunktionen kör den specialiserade medlemsfunktionen left.swap(right) för strängar, vilket garanterar konstant komplexitet.
Exempel
// 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
Konverterar ett värde till en string.
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);
Parameterar
value
Värdet som ska konverteras.
Returvärde
Det string som representerar värdet.
Anmärkningar
Funktionen konverterar värdet till en sekvens med element som lagras i ett matrisobjekt Buf som är internt för funktionen som om genom att anropa sprintf(Buf, Fmt, value), där Fmt är
"%d"omvalueär av typenint"%u"omvalueär av typenunsigned int"%ld"omvalueär av typenlong"%lu"omvalueär av typenunsigned long"%lld"omvalueär av typenlong long"%llu"omvalueär av typenunsigned long long"%f"omvalueär av typenfloatellerdouble"%Lf"omvalueär av typenlong double
Funktionen returnerar string(Buf).
to_wstring
Konverterar ett värde till en bred sträng.
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);
Parameterar
value
Värdet som ska konverteras.
Returvärde
Den breda sträng som representerar värdet.
Anmärkningar
Funktionen konverterar value till en sekvens med element som lagras i ett matrisobjekt Buf som är internt i funktionen som om genom att anropa swprintf(Buf, Len, Fmt, value), där Fmt är
L"%d"omvalueär av typenintL"%u"omvalueär av typenunsigned intL"%ld"omvalueär av typenlongL"%lu"omvalueär av typenunsigned longL"%lld"omvalueär av typenlong longL"%llu"omvalueär av typenunsigned long longL"%f"omvalueär av typenfloatellerdoubleL"%Lf"omvalueär av typenlong double
Funktionen returnerar wstring(Buf).