Megosztás:


<string> függvények

A <string> fejléc a következő függvényeket biztosítja:

getline

Sztringek kinyerése a bemeneti streamből soronként.

// (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);

Paraméterek

in_stream
Az a bemeneti adatfolyam, amelyből sztringet kell kinyerni.

str
Az a sztring, amelybe beolvassa a bemeneti streamben lévő karaktereket.

delimiter
A vonalelválasztó.

Visszaadott érték

A bemeneti adatfolyam in_stream.

Megjegyzések

A függvényadektorok párja karaktert nyer (1) ki in_stream , amíg meg nem delimiter találja őket, és tárolja őket a következőben str: .

A megjelölt függvény-aláíráspárok az új vonallal jelölik (2) meg az alapértelmezett vonalelválasztót, és úgy viselkednek, mint getline(in_stream, str, in_stream. widen('\n')).

Az egyes párok második függvénye az elsőhöz hasonló, amely támogatja rvalue a hivatkozásokat.

A kinyerés az alábbi műveletek valamelyike esetén leáll:

  • A fájl végén, ebben az esetben a belső állapot jelzője in_stream a következőre ios_base::eofbitvan állítva: .

  • Miután a függvény kiolvas egy elemet, amely egyenlő.delimiter Az elem nem lesz visszarakva vagy hozzáfűzve a szabályozott sorozathoz.

  • Miután a függvény kinyeri az elemeket str.max_size . A belső állapot jelzője in_stream a következőre ios_base::failbitvan állítva: .

  • A korábban felsoroltaktól eltérő egyéb hiba; a belső állapot jelzője in_stream a következőre ios_base::badbitvan állítva: .

A belső állapotjelzőkkel kapcsolatos információkért lásd: ios_base::iostate.

Ha a függvény nem nyer ki elemeket, a belső állapot jelzője in_stream a következőre ios_base::failbitvan állítva: . Mindenesetre a getline visszaadott érték in_stream.

Ha a rendszer kivételt jelez, in_stream és str érvényes állapotban marad.

példa

A következő kód két módban mutatja be getline() : először az alapértelmezett elválasztójellel (newline), a másodikban pedig egy elválasztójellel. A fájlvég karakter (CTRL-Z a billentyűzeten) a ciklusok megszakításának szabályozására szolgál. Ez az érték a belső állapotjelzőt a következő értékre cinállítjaeofbit, amelyet a második előtt törölni basic_ios::clear() kell, amíg a ciklus megfelelően működik.

// 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

Karaktersorozatot doublekonvertál .

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

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

Paraméterek

str
A konvertálandó karaktersorozat.

idx
Az első nem fordított karakter indexértéke.

Visszaadott érték

A double érték.

Megjegyzések

A függvény az elemek str sorrendjét olyan típusú double értékké alakítja, mintha meghívna strtod( str.c_str(), _Eptr)egy objektumot, amely _Eptr a függvényen belül található. Ha str.c_str() == *_Eptr, akkor egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, az egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha idx nem null mutató, a függvény *_Eptr - str.c_str()*idx tárolja és visszaadja az értéket.

stof

Egy karaktersorozatot lebegőpontossá alakít át.

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

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

Paraméterek

str
A konvertálandó karaktersorozat.

idx
Az első nem fordított karakter indexértéke.

Visszaadott érték

A float érték.

Megjegyzések

A függvény az elemek str sorrendjét olyan típusú float értékké alakítja, mintha meghívna strtof( str.c_str(), _Eptr)egy objektumot, amely _Eptr a függvényen belül található. Ha str.c_str() == *_Eptr, akkor egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, az egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha idx nem null mutató, a függvény *_Eptr - str.c_str()*idx tárolja és visszaadja az értéket.

stoi

Karaktersorozatot egész számmá alakít át.

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

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

Visszaadott érték

Az egész szám értéke.

Paraméterek

str
A konvertálandó karaktersorozat.

idx
Az első nem fordított karakter indexértéke.

base
A használni kívánt számalap.

Megjegyzések

A függvény stoi az str karaktersorozatot típusértékké int alakítja, és visszaadja az értéket. Ha például egy "10" karaktersorozatot adott át, a visszaadott stoi érték a 10 egész szám.

stoiaz egy bájtos karakterek függvényéhez hasonlóan viselkedik, amikor a függvényt strtol úgy strtol( str.c_str(), _Eptr, idx)hívják, hogy hol _Eptr van a függvény belső objektuma, vagy wcstol széles karakterek esetén, ha hasonló módon hívják meg. wcstol(Str.c_str(), _Eptr, idx) További információ: strtol, wcstol, _strtol_l. _wcstol_l

Ha str.c_str() == *_Eptr, stoi egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, vagy ha a visszaadott érték nem jeleníthető meg típusobjektumként int, akkor egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha az idx nem null mutató, akkor a függvény a következő helyen *_Eptr - str.c_str()található*idx: .

stol

Karaktersorozatot longkonvertál .

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

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

Paraméterek

str
A konvertálandó karaktersorozat.

idx
Az első nem fordított karakter indexértéke.

base
A használni kívánt számalap.

Visszaadott érték

A hosszú egész szám értéke.

Megjegyzések

A függvény az str elemsort olyan típusú long értékké alakítja, mintha meghívja strtol( str.c_str(), _Eptr, idx), ahol _Eptr egy objektum a függvényen belül van. Ha str.c_str() == *_Eptr, akkor egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, az egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha idx nem null mutató, a függvény *_Eptr - str.c_str()*idx tárolja és visszaadja az értéket.

stold

Karaktersorozatot long doublekonvertál .

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

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

Paraméterek

str
A konvertálandó karaktersorozat.

idx
Az első nem fordított karakter indexértéke.

Visszaadott érték

A long double érték.

Megjegyzések

A függvény az str elemsort olyan típusú long double értékké alakítja, mintha meghívja strtold( str.c_str(), _Eptr), ahol _Eptr egy objektum a függvényen belül van. Ha str.c_str() == *_Eptr, akkor egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, az egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha idx nem null mutató, a függvény *_Eptr - str.c_str()*idx tárolja és visszaadja az értéket.

stoll

Karaktersorozatot long longkonvertál .

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);

Paraméterek

str
A konvertálandó karaktersorozat.

idx
Az első nem fordított karakter indexértéke.

base
A használni kívánt számalap.

Visszaadott érték

A long long érték.

Megjegyzések

A függvény az str elemsort olyan típusú long long értékké alakítja, mintha meghívja strtoll( str.c_str(), _Eptr, idx), ahol _Eptr egy objektum a függvényen belül van. Ha str.c_str() == *_Eptr, akkor egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, az egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha az idx nem null mutató, a függvény *_Eptr - str.c_str() tárolja *idx és visszaadja az értéket.

stoul

Karakterütemezést alakít át aláíratlan hosszúra.

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);

Paraméterek

str
A konvertálandó karaktersorozat.

idx
Az első nem fordított karakter indexértéke.

base
A használni kívánt számalap.

Visszaadott érték

Az aláíratlan hosszú egész számérték.

Megjegyzések

A függvény az str elemsort olyan típusú unsigned long értékké alakítja, mintha meghívja strtoul( str.c_str(), _Eptr, idx), ahol _Eptr egy objektum a függvényen belül van. Ha str.c_str() == *_Eptr, akkor egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, az egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha az idx nem null mutató, a függvény *_Eptr - str.c_str() tárolja *idx és visszaadja az értéket.

stoull

Karaktersorozatot unsigned long longalakít át .

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);

Paraméterek

str
A konvertálandó karaktersorozat.

idx
Az első nem fordított karakter indexértéke.

base
A használni kívánt számalap.

Visszaadott érték

A unsigned long long érték.

Megjegyzések

A függvény az str elemsort olyan típusú unsigned long long értékké alakítja, mintha meghívja strtoull( str.c_str(), _Eptr, idx), ahol _Eptr egy objektum a függvényen belül van. Ha str.c_str() == *_Eptr, akkor egy típusú invalid_argumentobjektumot dob. Ha egy ilyen hívás be van állítva errno, az egy típusú out_of_rangeobjektumot dob. Ellenkező esetben, ha idx nem null mutató, a függvény *_Eptr - str.c_str()*idx tárolja és visszaadja az értéket.

swap

Két sztring karaktertömbjeinek cseréje.

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

Paraméterek

left
Egy sztring, amelynek elemeit fel kell cserélni egy másik sztring elemeire.

right
A másik sztring, amelynek elemeit fel kell cserélni az első sztringre.

Megjegyzések

A sablonfüggvény végrehajtja a sztringek speciális tagfüggvényét left.swap(right), amely garantálja az állandó összetettséget.

példa

// 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

Érték stringkonvertálása .

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);

Paraméterek

value
Az átalakítandó érték.

Visszaadott érték

Az string értéket jelképező érték.

Megjegyzések

A függvény egy tömbobjektumban Buf tárolt elemek sorozatává alakítja át az értéket úgy, mintha meghívja sprintf(Buf, Fmt, value)a függvényt, ahol Fmt

  • "%d" ha value típus int

  • "%u" ha value típus unsigned int

  • "%ld" ha value típus long

  • "%lu" ha value típus unsigned long

  • "%lld" ha value típus long long

  • "%llu" ha value típus unsigned long long

  • "%f" ha value típus float vagy double

  • "%Lf" ha value típus long double

A függvény ad string(Buf)vissza .

to_wstring

Egy értéket széles sztringgé alakít át.

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);

Paraméterek

value
Az átalakítandó érték.

Visszaadott érték

Az értéket jelképező széles sztring.

Megjegyzések

A függvény egy tömbobjektumban value tárolt elemek sorozatává alakítja Buf át a függvényt úgy, mintha meghívja swprintf(Buf, Len, Fmt, value)a függvényt, ahol Fmt

  • L"%d" ha value típus int

  • L"%u" ha value típus unsigned int

  • L"%ld" ha value típus long

  • L"%lu" ha value típus unsigned long

  • L"%lld" ha value típus long long

  • L"%llu" ha value típus unsigned long long

  • L"%f" ha value típus float vagy double

  • L"%Lf" ha value típus long double

A függvény ad wstring(Buf)vissza .

Lásd még

<string>