Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De <string> header biedt de volgende functies:
getline
Extraheer tekenreeksen uit de invoerstroom line-by-line.
// (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);
Parameterwaarden
in_stream
De invoerstroom waaruit een tekenreeks moet worden geëxtraheerd.
str
De tekenreeks waarin de tekens uit de invoerstroom worden gelezen.
delimiter
Het scheidingsteken voor regels.
Retourwaarde
De invoerstroom in_stream.
Opmerkingen
Het paar functiehandtekeningen die zijn gemarkeerd als (1) tekens extraheren van in_stream totdat delimiter ze worden gevonden, worden opgeslagen in str.
De twee functiehandtekeningen die zijn gemarkeerd (2) , gebruiken newline als het standaardregelscheidingsteken en gedragen zich als getline(in_stream, str, in_stream. widen('\n')).
De tweede functie van elk paar is een analoog aan de eerste die verwijzingen ondersteuntrvalue.
Extractie stopt wanneer een van de volgende situaties plaatsvindt:
Aan het einde van het bestand, in welk geval de interne statusvlag is
in_streamingesteld opios_base::eofbit.Nadat de functie een element heeft geëxtraheerd dat gelijk is aan
delimiter. Het element wordt niet teruggezet of toegevoegd aan de gecontroleerde reeks.Nadat de functie elementen heeft geëxtraheerd
str.max_size. De interne statusvlag isin_streamingesteld opios_base::failbit.Een andere fout dan de eerder vermelde fouten; de interne statusvlag is
in_streamingesteld opios_base::badbit.
Zie voor meer informatie over interne statusvlagmen ios_base::iostate.
Als de functie geen elementen extraheert, wordt de interne statusvlag in_stream ingesteld op ios_base::failbit. Retourneert in getlineelk geval in_stream .
Als er een uitzondering wordt gegenereerd in_stream en str deze een geldige status heeft.
Voorbeeld
De volgende code demonstreert getline() in twee modi: eerst met het standaardscheidingsteken (newline) en het tweede met een witruimte als scheidingsteken. Het einde van het bestand (CTRL-Z op het toetsenbord) wordt gebruikt om de beëindiging van de while-lussen te beheren. Met deze waarde wordt de interne statusvlag ingesteld op cineofbit, waarmee moet worden gewist basic_ios::clear() voordat de tweede lus goed werkt.
// 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
Converteert een tekenreeks naar een double.
double stod(
const string& str,
size_t* idx = 0);
double stod(
const wstring& str,
size_t* idx = 0);
Parameterwaarden
str
De tekenreeks die moet worden geconverteerd.
idx
De indexwaarde van het eerste niet-omgedraaide teken.
Retourwaarde
De double-waarde.
Opmerkingen
De functie converteert de reeks elementen naar str een waarde van het type double alsof door aan te roepen strtod( str.c_str(), _Eptr), waarbij _Eptr een object intern is voor de functie. Als str.c_str() == *_Eptr, het genereert een object van het type invalid_argument. Als een dergelijke aanroep zou worden ingesteld errno, wordt er een object van het type out_of_rangegegenereerd.
idx Als dit geen null-aanwijzer is, wordt de waarde door de functie opgeslagen *_Eptr - str.c_str()*idx en geretourneerd.
stof
Converteert een tekenreeks naar een float.
float stof(
const string& str,
size_t* idx = 0);
float stof(
const wstring& str,
size_t* idx = 0);
Parameterwaarden
str
De tekenreeks die moet worden geconverteerd.
idx
De indexwaarde van het eerste niet-omgedraaide teken.
Retourwaarde
De float-waarde.
Opmerkingen
De functie converteert de reeks elementen naar str een waarde van het type float alsof door aan te roepen strtof( str.c_str(), _Eptr), waarbij _Eptr een object intern is voor de functie. Als str.c_str() == *_Eptr, het genereert een object van het type invalid_argument. Als een dergelijke aanroep zou worden ingesteld errno, wordt er een object van het type out_of_rangegegenereerd.
idx Als dit geen null-aanwijzer is, wordt de waarde door de functie opgeslagen *_Eptr - str.c_str()*idx en geretourneerd.
stoi
Converteert een tekenreeks naar een geheel getal.
int stoi(
const string& str,
size_t* idx = 0,
int base = 10);
int stoi(
const wstring& str,
size_t* idx = 0,
int base = 10);
Retourwaarde
De waarde van het gehele getal.
Parameterwaarden
str
De tekenreeks die moet worden geconverteerd.
idx
De indexwaarde van het eerste niet-omgedraaide teken.
base
De te gebruiken numerieke basis.
Opmerkingen
De functie stoi converteert de reeks tekens in str naar een waarde van het type int en retourneert de waarde. Wanneer u bijvoorbeeld een tekenreeks '10' doorgeeft, is de geretourneerde stoi waarde het gehele getal 10.
stoi gedraagt zich vergelijkbaar met de functie strtol voor tekens met één byte wanneer deze wordt aangeroepen op de manier strtol( str.c_str(), _Eptr, idx), waarbij _Eptr een object intern is voor de functie; of wcstol voor brede tekens, wanneer deze op vergelijkbare wijze wordt aangeroepen, wcstol(Str.c_str(), _Eptr, idx). Zie , strtol, , voor wcstol_strtol_lmeer informatie_wcstol_l.
Als str.c_str() == *_Eptr, stoi genereert een object van het type invalid_argument. Als een dergelijke aanroep wordt ingesteld errnoof als de geretourneerde waarde niet kan worden weergegeven als een object van het type int, wordt er een object van het type out_of_rangegegenereerd. Als idx geen null-aanwijzer is, wordt de functie opgeslagen *_Eptr - str.c_str() in *idx.
stol
Converteert een tekenreeks naar een 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);
Parameterwaarden
str
De tekenreeks die moet worden geconverteerd.
idx
De indexwaarde van het eerste niet-omgedraaide teken.
base
De te gebruiken numerieke basis.
Retourwaarde
De waarde voor een lang geheel getal.
Opmerkingen
De functie converteert de reeks elementen in str naar een waarde van het type long alsof door aanroepen strtol( str.c_str(), _Eptr, idx), waarbij _Eptr een object intern is voor de functie. Als str.c_str() == *_Eptr, het genereert een object van het type invalid_argument. Als een dergelijke aanroep zou worden ingesteld errno, wordt er een object van het type out_of_rangegegenereerd.
idx Als dit geen null-aanwijzer is, wordt de waarde door de functie opgeslagen *_Eptr - str.c_str()*idx en geretourneerd.
stold
Converteert een tekenreeks naar een long double.
double stold(
const string& str,
size_t* idx = 0);
double stold(
const wstring& str,
size_t* idx = 0);
Parameterwaarden
str
De tekenreeks die moet worden geconverteerd.
idx
De indexwaarde van het eerste niet-omgedraaide teken.
Retourwaarde
De long double-waarde.
Opmerkingen
De functie converteert de reeks elementen in str naar een waarde van het type long double alsof door aanroepen strtold( str.c_str(), _Eptr), waarbij _Eptr een object intern is voor de functie. Als str.c_str() == *_Eptr, het genereert een object van het type invalid_argument. Als een dergelijke aanroep zou worden ingesteld errno, wordt er een object van het type out_of_rangegegenereerd.
idx Als dit geen null-aanwijzer is, wordt de waarde door de functie opgeslagen *_Eptr - str.c_str()*idx en geretourneerd.
stoll
Converteert een tekenreeks naar een 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);
Parameterwaarden
str
De tekenreeks die moet worden geconverteerd.
idx
De indexwaarde van het eerste niet-omgedraaide teken.
base
De te gebruiken numerieke basis.
Retourwaarde
De long long-waarde.
Opmerkingen
De functie converteert de reeks elementen in str naar een waarde van het type long long alsof door aanroepen strtoll( str.c_str(), _Eptr, idx), waarbij _Eptr een object intern is voor de functie. Als str.c_str() == *_Eptr, het genereert een object van het type invalid_argument. Als een dergelijke aanroep zou worden ingesteld errno, wordt er een object van het type out_of_rangegegenereerd. Als idx geen null-aanwijzer is, wordt de waarde door de functie opgeslagen *_Eptr - str.c_str()*idx en geretourneerd.
stoul
Converteert een tekenreeks naar een niet-ondertekende lange.
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);
Parameterwaarden
str
De tekenreeks die moet worden geconverteerd.
idx
De indexwaarde van het eerste niet-omgedraaide teken.
base
De te gebruiken numerieke basis.
Retourwaarde
De niet-ondertekende waarde voor een lang geheel getal.
Opmerkingen
De functie converteert de reeks elementen in str naar een waarde van het type unsigned long alsof door aanroepen strtoul( str.c_str(), _Eptr, idx), waarbij _Eptr een object intern is voor de functie. Als str.c_str() == *_Eptr, het genereert een object van het type invalid_argument. Als een dergelijke aanroep zou worden ingesteld errno, wordt er een object van het type out_of_rangegegenereerd. Als idx geen null-aanwijzer is, wordt de waarde door de functie opgeslagen *_Eptr - str.c_str()*idx en geretourneerd.
stoull
Converteert een tekenreeks naar een 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);
Parameterwaarden
str
De tekenreeks die moet worden geconverteerd.
idx
De indexwaarde van het eerste niet-omgedraaide teken.
base
De te gebruiken numerieke basis.
Retourwaarde
De unsigned long long-waarde.
Opmerkingen
De functie converteert de reeks elementen in str naar een waarde van het type unsigned long long alsof door aanroepen strtoull( str.c_str(), _Eptr, idx), waarbij _Eptr een object intern is voor de functie. Als str.c_str() == *_Eptr, het genereert een object van het type invalid_argument. Als een dergelijke aanroep zou worden ingesteld errno, wordt er een object van het type out_of_rangegegenereerd.
idx Als dit geen null-aanwijzer is, wordt de waarde door de functie opgeslagen *_Eptr - str.c_str()*idx en geretourneerd.
swap
Hiermee worden de matrices van tekens van twee tekenreeksen uitgewisseld.
template <class Traits, class Allocator>
void swap(basic_string<CharType, Traits, Allocator>& left, basic_string<CharType, Traits, Allocator>& right);
Parameterwaarden
left
Eén tekenreeks waarvan de elementen moeten worden gewisseld met de elementen van een andere tekenreeks.
right
De andere tekenreeks waarvan de elementen moeten worden gewisseld met de eerste tekenreeks.
Opmerkingen
De sjabloonfunctie voert de gespecialiseerde lidfunctie left.swap(right) uit voor tekenreeksen, wat constante complexiteit garandeert.
Voorbeeld
// 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
Converteert een waarde naar een 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);
Parameterwaarden
value
De waarde die moet worden geconverteerd.
Retourwaarde
De string waarde die de waarde vertegenwoordigt.
Opmerkingen
De functie converteert waarde naar een reeks elementen die zijn opgeslagen in een matrixobject Buf intern naar de functie alsof door aanroepen sprintf(Buf, Fmt, value), waar Fmt is
"%d"alsvaluevan het type isint"%u"alsvaluevan het type isunsigned int"%ld"alsvaluevan het type islong"%lu"alsvaluevan het type isunsigned long"%lld"alsvaluevan het type islong long"%llu"alsvaluevan het type isunsigned long long"%f"indienvaluevan het typefloatofdouble"%Lf"alsvaluevan het type islong double
De functie retourneert string(Buf).
to_wstring
Converteert een waarde naar een brede tekenreeks.
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);
Parameterwaarden
value
De waarde die moet worden geconverteerd.
Retourwaarde
De brede tekenreeks die de waarde vertegenwoordigt.
Opmerkingen
De functie wordt geconverteerd value naar een reeks elementen die zijn opgeslagen in een matrixobject Buf intern in de functie alsof door aanroepen swprintf(Buf, Len, Fmt, value), waar Fmt is
L"%d"alsvaluevan het type isintL"%u"alsvaluevan het type isunsigned intL"%ld"alsvaluevan het type islongL"%lu"alsvaluevan het type isunsigned longL"%lld"alsvaluevan het type islong longL"%llu"alsvaluevan het type isunsigned long longL"%f"indienvaluevan het typefloatofdoubleL"%Lf"alsvaluevan het type islong double
De functie retourneert wstring(Buf).