Bagikan melalui


Fungsi <string>

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

getline

Ekstrak string dari baris demi baris aliran input.

// (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
Aliran input tempat string akan diekstrak.

str
String tempat membaca karakter dari aliran input.

delimiter
Pembatas garis.

Tampilkan Nilai

Aliran in_streaminput .

Keterangan

Pasangan tanda tangan fungsi ditandai (1) mengekstrak karakter dari in_stream sampai delimiter ditemukan, menyimpannya di str.

Pasangan tanda tangan fungsi yang ditandai (2) menggunakan baris baru sebagai pemisah baris default dan berulah sebagai getline(in_stream, str, in_stream. widen('\n')).

Fungsi kedua dari setiap pasangan adalah analog ke yang pertama untuk mendukung rvalue referensi.

Ekstraksi berhenti ketika salah satu hal berikut ini terjadi:

  • Pada akhir file, dalam hal ini bendera in_stream status internal diatur ke ios_base::eofbit.

  • Setelah fungsi mengekstrak elemen yang dibandingkan dengan delimiter. Elemen tidak diletakkan kembali atau ditambahkan ke urutan terkontrol.

  • Setelah fungsi mengekstrak str.max_size elemen. Bendera in_stream status internal diatur ke ios_base::failbit.

  • Beberapa kesalahan lain selain yang sebelumnya tercantum; bendera in_stream status internal diatur ke ios_base::badbit.

Untuk informasi tentang bendera status internal, lihat ios_base::iostate.

Jika fungsi tidak mengekstrak elemen, bendera in_stream status internal diatur ke ios_base::failbit. Bagaimanapun, getline mengembalikan in_stream.

Jika pengecualian dilemparkan, in_stream dan str dibiarkan dalam status valid.

Contoh

Kode berikut menunjukkan getline() dalam dua mode: pertama dengan pemisah default (baris baru) dan kedua dengan spasi kosong sebagai pemisah. Karakter akhir file (CTRL-Z pada keyboard) digunakan untuk mengontrol penghentian saat perulangan. Nilai ini menetapkan bendera status internal ke cin eofbit, yang harus dibersihkan dengan basic_ios::clear() sebelum yang kedua sementara perulangan akan berfungsi dengan baik.

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

Mengonversi urutan karakter menjadi double.

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

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

Parameter

str
Urutan karakter yang akan dikonversi.

idx
Nilai indeks dari karakter pertama yang belum dikonversi.

Tampilkan Nilai

Nilainya double .

Keterangan

Fungsi ini mengonversi urutan elemen str ke nilai jenis double seolah-olah dengan memanggil strtod( str.c_str(), _Eptr), di mana _Eptr merupakan objek internal ke fungsi. Jika str.c_str() == *_Eptr, itu melemparkan objek jenis invalid_argument. Jika panggilan seperti itu akan mengatur errno, panggilan akan melemparkan objek jenis out_of_range. Jika tidak, jika idx bukan penunjuk null, fungsi menyimpan *_Eptr - str.c_str() dan *idx mengembalikan nilai .

stof

Mengonversi urutan karakter menjadi float.

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

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

Parameter

str
Urutan karakter yang akan dikonversi.

idx
Nilai indeks dari karakter pertama yang belum dikonversi.

Tampilkan Nilai

Nilainya float .

Keterangan

Fungsi ini mengonversi urutan elemen str ke nilai jenis float seolah-olah dengan memanggil strtof( str.c_str(), _Eptr), di mana _Eptr merupakan objek internal ke fungsi. Jika str.c_str() == *_Eptr, itu melemparkan objek jenis invalid_argument. Jika panggilan seperti itu akan mengatur errno, panggilan akan melemparkan objek jenis out_of_range. Jika tidak, jika idx bukan penunjuk null, fungsi menyimpan *_Eptr - str.c_str() dan *idx mengembalikan nilai .

stoi

Mengonversi urutan karakter menjadi bilangan bulat.

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

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

Tampilkan Nilai

Nilai bilangan bulat.

Parameter

str
Urutan karakter yang akan dikonversi.

idx
Nilai indeks dari karakter pertama yang belum dikonversi.

base
Basis angka yang akan digunakan.

Keterangan

Fungsi stoi mengonversi urutan karakter dalam str ke nilai jenis int dan mengembalikan nilai . Misalnya, ketika melewati urutan karakter "10", nilai yang dikembalikan oleh stoi adalah bilangan bulat 10.

stoi bersifat mirip dengan fungsi strtol untuk karakter byte tunggal ketika dipanggil dengan cara strtol( str.c_str(), _Eptr, idx), di mana _Eptr merupakan objek internal untuk fungsi; atau wcstol untuk karakter lebar, ketika dipanggil dengan cara yang sama, wcstol(Str.c_str(), _Eptr, idx). Untuk informasi selengkapnya, lihat strtol, wcstol, _strtol_l, _wcstol_l.

Jika str.c_str() == *_Eptr, stoi melempar objek jenis invalid_argument. Jika panggilan seperti itu akan mengatur errno, atau jika nilai yang dikembalikan tidak dapat direpresentasikan sebagai objek jenis int, panggilan akan melemparkan objek jenis out_of_range. Jika tidak, jika idx bukan penunjuk null, fungsi disimpan *_Eptr - str.c_str() di *idx.

stol

Mengonversi urutan karakter menjadi 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
Urutan karakter yang akan dikonversi.

idx
Nilai indeks dari karakter pertama yang belum dikonversi.

base
Basis angka yang akan digunakan.

Tampilkan Nilai

Nilai bilangan bulat panjang.

Keterangan

Fungsi ini mengonversi urutan elemen dalam str menjadi nilai jenis long seolah-olah dengan memanggil strtol( str.c_str(), _Eptr, idx), di mana _Eptr merupakan objek internal ke fungsi. Jika str.c_str() == *_Eptr, itu melemparkan objek jenis invalid_argument. Jika panggilan seperti itu akan mengatur errno, panggilan akan melemparkan objek jenis out_of_range. Jika tidak, jika idx bukan penunjuk null, fungsi menyimpan *_Eptr - str.c_str() dan *idx mengembalikan nilai .

stold

Mengonversi urutan karakter menjadi long double.

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

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

Parameter

str
Urutan karakter yang akan dikonversi.

idx
Nilai indeks dari karakter pertama yang belum dikonversi.

Tampilkan Nilai

Nilainya long double .

Keterangan

Fungsi ini mengonversi urutan elemen dalam str menjadi nilai jenis long double seolah-olah dengan memanggil strtold( str.c_str(), _Eptr), di mana _Eptr merupakan objek internal ke fungsi. Jika str.c_str() == *_Eptr, itu melemparkan objek jenis invalid_argument. Jika panggilan seperti itu akan mengatur errno, panggilan akan melemparkan objek jenis out_of_range. Jika tidak, jika idx bukan penunjuk null, fungsi menyimpan *_Eptr - str.c_str() dan *idx mengembalikan nilai .

stoll

Mengonversi urutan karakter menjadi 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
Urutan karakter yang akan dikonversi.

idx
Nilai indeks dari karakter pertama yang belum dikonversi.

base
Basis angka yang akan digunakan.

Tampilkan Nilai

Nilainya long long .

Keterangan

Fungsi ini mengonversi urutan elemen dalam str menjadi nilai jenis long long seolah-olah dengan memanggil strtoll( str.c_str(), _Eptr, idx), di mana _Eptr merupakan objek internal ke fungsi. Jika str.c_str() == *_Eptr, itu melemparkan objek jenis invalid_argument. Jika panggilan seperti itu akan mengatur errno, panggilan akan melemparkan objek jenis out_of_range. Jika tidak, jika idx bukan penunjuk null, fungsi akan menyimpan *_Eptr - str.c_str() *idx dan mengembalikan nilai.

stoul

Mengonversi urutan karakter menjadi panjang yang tidak ditandatangani.

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
Urutan karakter yang akan dikonversi.

idx
Nilai indeks dari karakter pertama yang belum dikonversi.

base
Basis angka yang akan digunakan.

Tampilkan Nilai

Nilai bilangan bulat panjang yang tidak ditandatangani.

Keterangan

Fungsi ini mengonversi urutan elemen dalam str menjadi nilai jenis unsigned long seolah-olah dengan memanggil strtoul( str.c_str(), _Eptr, idx), di mana _Eptr merupakan objek internal ke fungsi. Jika str.c_str() == *_Eptr, itu melemparkan objek jenis invalid_argument. Jika panggilan seperti itu akan mengatur errno, panggilan akan melemparkan objek jenis out_of_range. Jika tidak, jika idx bukan penunjuk null, fungsi akan menyimpan *_Eptr - str.c_str() *idx dan mengembalikan nilai.

stoull

Mengonversi urutan karakter menjadi 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
Urutan karakter yang akan dikonversi.

idx
Nilai indeks dari karakter pertama yang belum dikonversi.

base
Basis angka yang akan digunakan.

Tampilkan Nilai

Nilainya unsigned long long .

Keterangan

Fungsi ini mengonversi urutan elemen dalam str menjadi nilai jenis unsigned long long seolah-olah dengan memanggil strtoull( str.c_str(), _Eptr, idx), di mana _Eptr merupakan objek internal ke fungsi. Jika str.c_str() == *_Eptr, itu melemparkan objek jenis invalid_argument. Jika panggilan seperti itu akan mengatur errno, panggilan akan melemparkan objek jenis out_of_range. Jika tidak, jika idx bukan penunjuk null, fungsi menyimpan *_Eptr - str.c_str() dan *idx mengembalikan nilai .

swap

Menukar array karakter dari dua string.

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

Parameter

left
Satu string yang elemennya akan ditukar dengan elemen string lain.

right
String lain yang elemennya akan ditukar dengan string pertama.

Keterangan

Fungsi templat menjalankan fungsi left.swapanggota khusus (right) untuk string, yang menjamin kompleksitas konstan.

Contoh

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

Mengonversi nilai menjadi 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);

Parameter

value
Nilai yang akan dikonversi.

Tampilkan Nilai

string yang mewakili nilai.

Keterangan

Fungsi mengonversi nilai menjadi urutan elemen yang disimpan dalam objek Buf array internal ke fungsi seolah-olah dengan memanggil sprintf(Buf, Fmt, value), di mana Fmt

  • "%d" jika value berjenis int

  • "%u" jika value berjenis unsigned int

  • "%ld" jika value berjenis long

  • "%lu" jika value berjenis unsigned long

  • "%lld" jika value berjenis long long

  • "%llu" jika value berjenis unsigned long long

  • "%f" jika value berjenis float atau double

  • "%Lf" jika value berjenis long double

Fungsi mengembalikan string(Buf).

to_wstring

Mengonversi nilai menjadi string lebar.

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
Nilai yang akan dikonversi.

Tampilkan Nilai

String lebar yang mewakili nilai.

Keterangan

Fungsi mengonversi value ke urutan elemen yang disimpan dalam objek Buf array internal ke fungsi seolah-olah dengan memanggil swprintf(Buf, Len, Fmt, value), di mana Fmt

  • L"%d" jika value berjenis int

  • L"%u" jika value berjenis unsigned int

  • L"%ld" jika value berjenis long

  • L"%lu" jika value berjenis unsigned long

  • L"%lld" jika value berjenis long long

  • L"%llu" jika value berjenis unsigned long long

  • L"%f" jika value berjenis float atau double

  • L"%Lf" jika value berjenis long double

Fungsi mengembalikan wstring(Buf).

Lihat juga

<string>