std::string::assign

提供: C++入門
移動: 案内検索
スポンサーリンク

std::string::assign とは、std::stringに新しい値を割り当て、既存の内容を置き換えます。

読み方

std::string::assign

概要

std::string::assignは、std::stringのコンストラクタ std::string::string で出来ることができます。 一部の機能は、std::string::operator=と同じですが、assignのほうがコンストラクタと同様に機能が豊富です。

ヘッダファイル

// string (1)	
string& assign (const string& str);
 
// substring (2)	
string& assign (const string& str, size_t subpos, size_t sublen);
 
// c-string (3)	
string& assign (const char* s);
 
// buffer (4)	
string& assign (const char* s, size_t n);
 
// fill (5)	
string& assign (size_t n, char c);
 
// range (6)	
template <class InputIterator>
   string& assign (InputIterator first, InputIterator last);
 
// initializer list(7)	
string& assign (initializer_list<char> il);
 
// move (8)	
string& assign (string&& str) noexcept;

assign1.cpp の例

ソースコード assign1.cpp

#include <iostream>
#include <string>
using namespace std;
int main(int argc, char const* argv[])
{
        // 0123456
        // foo bar
        string base("foo bar");//foo bar(C string)を代入
        string s0;
 
        s0.assign(base);
        cout << "foo bar = " << s0 << endl;     // foo bar
 
        s0.assign(base, 4,3);////s1の4文字目から3文字コピー
        cout << "bar = " << s0 << endl; // bar
 
        s0.assign("foo bar", 3);
        cout << "foo = " << s0 << endl; // foo
 
        s0.assign("c-string");
        cout << "c-string = " << s0 << endl;    // c-string
 
        s0.assign(3, '*');      // ***
        cout << "*** = " << s0 << endl; // ***
 
        s0.assign<int>(3, 0x2d);//      0x2d = -
        cout << "--- = " << s0 << endl; // ---
 
        s0.assign(base.begin() + 1, base.end()-1);
        cout << "oo ba = " << s0 << endl;       // oo ba
 
        return 0;
}

コンパイル

g++  assign1.cpp -o assign1

実行例

% ./assign1
foo bar = foo bar
bar = bar
foo = foo
c-string = c-string
*** = ***
--- = ---
oo ba = oo ba

関連項目




スポンサーリンク