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_stream
input .
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 keios_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. Benderain_stream
status internal diatur keios_base::failbit
.Beberapa kesalahan lain selain yang sebelumnya tercantum; bendera
in_stream
status internal diatur keios_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.swap
anggota 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"
jikavalue
berjenisint
"%u"
jikavalue
berjenisunsigned int
"%ld"
jikavalue
berjenislong
"%lu"
jikavalue
berjenisunsigned long
"%lld"
jikavalue
berjenislong long
"%llu"
jikavalue
berjenisunsigned long long
"%f"
jikavalue
berjenisfloat
ataudouble
"%Lf"
jikavalue
berjenislong 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"
jikavalue
berjenisint
L"%u"
jikavalue
berjenisunsigned int
L"%ld"
jikavalue
berjenislong
L"%lu"
jikavalue
berjenisunsigned long
L"%lld"
jikavalue
berjenislong long
L"%llu"
jikavalue
berjenisunsigned long long
L"%f"
jikavalue
berjenisfloat
ataudouble
L"%Lf"
jikavalue
berjenislong double
Fungsi mengembalikan wstring(Buf)
.