<string> işlevleri

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

getline

Giriş akışından dizeleri satır satır ayıklayın.

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

Parametreler

in_stream
Bir dizenin ayıklanması için giriş akışı.

str
Giriş akışındaki karakterlerin okunduğu dize.

delimiter
Çizgi sınırlayıcısı.

İade Değeri

Giriş akışı in_stream.

Açıklamalar

bulunana kadar delimiter içindeki karakterleri in_stream ayıkla olarak işaretlenen (1) işlev imzaları çifti bunları içinde strdepolar.

İşaretlenen (2) işlev imzaları çifti, varsayılan satır sınırlayıcısı olarak yeni satır kullanır ve olarak getline(in_stream, str, in_stream. widen('\n'))davranır.

Her çiftin ikinci işlevi, başvuruları destekleyen rvalue ilk çifte bir analogdur.

Aşağıdakilerden biri gerçekleştiğinde ayıklama durdurulur:

  • Dosyanın sonunda iç durum bayrağı in_stream olarak ios_base::eofbitayarlanır.

  • İşlev, ile eşit delimiterolan bir öğeyi ayıkladıktan sonra. öğesi, denetimli diziye geri yerleştirilmez veya eklenmez.

  • İşlev öğeleri ayıkladıktan str.max_size sonra. iç durum bayrağı in_stream olarak ios_base::failbitayarlanır.

  • Daha önce listelenenler dışında bazı başka hatalar; iç durum bayrağı in_stream olarak ios_base::badbitayarlanır.

İç durum bayrakları hakkında bilgi için bkz ios_base::iostate. .

İşlev hiçbir öğe ayıklamazsa, iç durum bayrağı in_stream olarak ios_base::failbitayarlanır. Her durumda döndürür getlinein_stream.

Özel durum oluşturulursa in_stream ve str geçerli bir durumda bırakılırsa.

Örnek

Aşağıdaki kod iki modda gösterilir getline() : ilk olarak varsayılan sınırlayıcı (yeni satır) ve ikincisinde sınırlayıcı olarak boşluk vardır. Dosya sonu karakteri (klavyede CTRL-Z), while döngülerinin sonlandırılmasını denetlemek için kullanılır. Bu değer, öğesinin iç durum bayrağını cineofbitolarak ayarlar ve ikinci while döngüsü düzgün çalışmadan önce ile basic_ios::clear() temizlenmelidir.

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

Karakter dizisini öğesine doubledönüştürür.

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

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

Parametreler

str
Dönüştürülecek karakter dizisi.

idx
İlk dönüştürülmemiş karakterin dizin değeri.

İade Değeri

double değeri.

Açıklamalar

işlevi, işlevin str içindeki bir nesne olan öğesini çağırarak strtod( str.c_str(), _Eptr)_Eptr gibi içindeki öğelerin sırasını türünde double bir değere dönüştürür. ise str.c_str() == *_Eptrtüründe bir nesnesi invalid_argumentoluşturur. Böyle bir çağrı ayarlanırsa errnotüründe out_of_rangebir nesnesi oluşturur. Aksi takdirde, null işaretçi değilse idx işlev içinde *idx depolar *_Eptr - str.c_str() ve değeri döndürür.

stof

Karakter dizisini float'a dönüştürür.

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

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

Parametreler

str
Dönüştürülecek karakter dizisi.

idx
İlk dönüştürülmemiş karakterin dizin değeri.

İade Değeri

float değeri.

Açıklamalar

işlevi, işlevin str içindeki bir nesne olan öğesini çağırarak strtof( str.c_str(), _Eptr)_Eptr gibi içindeki öğelerin sırasını türünde float bir değere dönüştürür. ise str.c_str() == *_Eptrtüründe bir nesnesi invalid_argumentoluşturur. Böyle bir çağrı ayarlanırsa errnotüründe out_of_rangebir nesnesi oluşturur. Aksi takdirde, null işaretçi değilse idx işlev içinde *idx depolar *_Eptr - str.c_str() ve değeri döndürür.

stoi

Karakter dizisini tamsayıya dönüştürür.

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

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

İade Değeri

Tamsayı değeri.

Parametreler

str
Dönüştürülecek karakter dizisi.

idx
İlk dönüştürülmemiş karakterin dizin değeri.

base
Kullanılacak sayı tabanı.

Açıklamalar

işlevistoi, str içindeki karakter dizisini tür int değerine dönüştürür ve değeri döndürür. Örneğin, "10" karakter dizisi geçirildiğinde, tarafından stoi döndürülen değer 10 tamsayıdır.

stoiişlevine benzer şekilde çağrıldığında strtol( str.c_str(), _Eptr, idx)tek baytlı karakterler için işlevine strtol benzer şekilde davranır. Burada _Eptr işlevin içindeki bir nesnedir veya wcstol geniş karakterler için benzer şekilde çağrıldığında . wcstol(Str.c_str(), _Eptr, idx) Daha fazla bilgi için bkz. strtol, wcstol, _strtol_l, _wcstol_l.

ise str.c_str() == *_Eptrtüründe stoi bir nesnesi invalid_argumentoluşturur. Böyle bir çağrı ayarlanacaksa errnoveya döndürülen değer türünde intbir nesne olarak temsil edilemiyorsa türünde bir nesnesi out_of_rangeoluşturur. Aksi takdirde, idx null işaretçi değilse, işlevi içinde *idxdepolar*_Eptr - str.c_str().

stol

Karakter dizisini öğesine longdönüştürür.

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

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

Parametreler

str
Dönüştürülecek karakter dizisi.

idx
İlk dönüştürülmemiş karakterin dizin değeri.

base
Kullanılacak sayı tabanı.

İade Değeri

Uzun tamsayı değeri.

Açıklamalar

işlevi, str içindeki öğelerin sırasını çağırarak strtol( str.c_str(), _Eptr, idx)türünde long bir değere dönüştürür. Burada _Eptr işlevin içindeki bir nesnedir. ise str.c_str() == *_Eptrtüründe bir nesnesi invalid_argumentoluşturur. Böyle bir çağrı ayarlanırsa errnotüründe out_of_rangebir nesnesi oluşturur. Aksi takdirde, null işaretçi değilse idx işlev içinde *idx depolar *_Eptr - str.c_str() ve değeri döndürür.

stold

Karakter dizisini öğesine long doubledönüştürür.

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

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

Parametreler

str
Dönüştürülecek karakter dizisi.

idx
İlk dönüştürülmemiş karakterin dizin değeri.

İade Değeri

long double değeri.

Açıklamalar

işlevi, str içindeki öğelerin sırasını çağırarak strtold( str.c_str(), _Eptr)türünde long double bir değere dönüştürür. Burada _Eptr işlevin içindeki bir nesnedir. ise str.c_str() == *_Eptrtüründe bir nesnesi invalid_argumentoluşturur. Böyle bir çağrı ayarlanırsa errnotüründe out_of_rangebir nesnesi oluşturur. Aksi takdirde, null işaretçi değilse idx işlev içinde *idx depolar *_Eptr - str.c_str() ve değeri döndürür.

stoll

Karakter dizisini öğesine long longdönüştürür.

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

Parametreler

str
Dönüştürülecek karakter dizisi.

idx
İlk dönüştürülmemiş karakterin dizin değeri.

base
Kullanılacak sayı tabanı.

İade Değeri

long long değeri.

Açıklamalar

işlevi, str içindeki öğelerin sırasını çağırarak strtoll( str.c_str(), _Eptr, idx)türünde long long bir değere dönüştürür. Burada _Eptr işlevin içindeki bir nesnedir. ise str.c_str() == *_Eptrtüründe bir nesnesi invalid_argumentoluşturur. Böyle bir çağrı ayarlanırsa errnotüründe out_of_rangebir nesnesi oluşturur. Aksi takdirde, idx null işaretçi değilse işlev içinde *idx depolar *_Eptr - str.c_str() ve değeri döndürür.

stoul

Karakter dizisini işaretsiz uzun bir süreye dönüştürür.

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

Parametreler

str
Dönüştürülecek karakter dizisi.

idx
İlk dönüştürülmemiş karakterin dizin değeri.

base
Kullanılacak sayı tabanı.

İade Değeri

İşaretsiz uzun tamsayı değeri.

Açıklamalar

işlevi, str içindeki öğelerin sırasını çağırarak strtoul( str.c_str(), _Eptr, idx)türünde unsigned long bir değere dönüştürür. Burada _Eptr işlevin içindeki bir nesnedir. ise str.c_str() == *_Eptrtüründe bir nesnesi invalid_argumentoluşturur. Böyle bir çağrı ayarlanırsa errnotüründe out_of_rangebir nesnesi oluşturur. Aksi takdirde, idx null işaretçi değilse işlev içinde *idx depolar *_Eptr - str.c_str() ve değeri döndürür.

stoull

Karakter dizisini öğesine unsigned long longdönüştürür.

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

Parametreler

str
Dönüştürülecek karakter dizisi.

idx
İlk dönüştürülmemiş karakterin dizin değeri.

base
Kullanılacak sayı tabanı.

İade Değeri

unsigned long long değeri.

Açıklamalar

işlevi, str içindeki öğelerin sırasını çağırarak strtoull( str.c_str(), _Eptr, idx)türünde unsigned long long bir değere dönüştürür. Burada _Eptr işlevin içindeki bir nesnedir. ise str.c_str() == *_Eptrtüründe bir nesnesi invalid_argumentoluşturur. Böyle bir çağrı ayarlanırsa errnotüründe out_of_rangebir nesnesi oluşturur. Aksi takdirde, null işaretçi değilse idx işlev içinde *idx depolar *_Eptr - str.c_str() ve değeri döndürür.

swap

İki dizenin karakter dizilerini değiştirir.

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

Parametreler

left
Öğeleri başka bir dizenin öğeleriyle değiştirilecek bir dize.

right
Öğeleri ilk dizeyle değiştirilecek diğer dize.

Açıklamalar

Şablon işlevi, dizeler için özelleştirilmiş üye işlevini left.swap(right) yürütür ve bu da sabit karmaşıklığı garanti eder.

Örnek

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

Bir değeri değerine stringdönüştürür.

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

Parametreler

value
Dönüştürülecek değer.

İade Değeri

string değerini temsil eden.

Açıklamalar

işlevi, işlevini çağırarak sprintf(Buf, Fmt, value)işlevin içindeki bir dizi nesnesinde Buf depolanan bir öğe dizisine dönüştürür. BuradaFmt,

  • "%d"türündeyse valueint

  • "%u"türündeyse valueunsigned int

  • "%ld"türündeyse valuelong

  • "%lu"türündeyse valueunsigned long

  • "%lld"türündeyse valuelong long

  • "%llu"türündeyse valueunsigned long long

  • "%f"veya türündeyse valuefloatdouble

  • "%Lf"türündeyse valuelong double

işlevi döndürür string(Buf).

to_wstring

Bir değeri geniş dizeye dönüştürür.

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

Parametreler

value
Dönüştürülecek değer.

İade Değeri

Değeri temsil eden geniş dize.

Açıklamalar

İşlev, işlevini çağırarak swprintf(Buf, Len, Fmt, value)işlevin içindeki bir dizi nesnesinde Buf depolanan öğe dizisine dönüştürürvalue. BuradaFmt,

  • L"%d"türündeyse valueint

  • L"%u"türündeyse valueunsigned int

  • L"%ld"türündeyse valuelong

  • L"%lu"türündeyse valueunsigned long

  • L"%lld"türündeyse valuelong long

  • L"%llu"türündeyse valueunsigned long long

  • L"%f"veya türündeyse valuefloatdouble

  • L"%Lf"türündeyse valuelong double

işlevi döndürür wstring(Buf).

Ayrıca bkz.

<string>