C++基础---string类的operator=/assign

1. string类的operator=/assign

1.1 std::string::operator=

  • 原型: string& operator= (const string& str);
  • 说明: 把string型字符串str赋给当前字符串。
  • 原型: string& operator= (const char* s);
  • 说明: 把char型字符串s赋给当前字符串。
  • 原型:string& operator= (char c);
  • 说明: 把字符c赋给当前字符串。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str1, str2, str3;
    
        str1 = "Test string: ";//c-string
        str2 = 'x';            //single character
        str3 = str1 + str2;    //string
    
        cout<<"string& operator= (const char* s);"<<endl;
        cout<<str1<<endl;
        cout<<endl;
    
        cout<<"string& operator= (char c);"<<endl;
        cout<<str2<<endl;
        cout<<endl;
    
        cout<<"string& operator= (const string& str);"<<endl;
        cout<<str3<<endl;
        cout<<endl;
    
        system("pause");
    
        return 0;
    }
    =>string& operator= (const char* s);
      Test string:
    
      string& operator= (char c);
      x
    
      string& operator= (const string& str);
      Test string: x

1.2 std::string::assign

  • 原型:string& assign (const string& str);
  • 说明: 用string型字符串str赋值给当前字符串。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str0="The quick brown fox jumps over a lazy dog.";
    
        string str1;
        str1.assign(str0);
        cout<<"string& assign (const string& str);"<<endl;
        cout<<str1<<endl;
    
        system("pause");
    
        return 0;
    }
    =>string& assign (const string& str);
      The quick brown fox jumps over a lazy dog.
  • 原型:string& assign (const string& str, size_t subpos, size_t sublen);
  • 说明: 用string型字符串str中下标为subpos处开始拷贝sublen个字符赋值给当前字符串。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str0="The quick brown fox jumps over a lazy dog.";
    
        string str2;
        str2.assign(str0, 10, 9);
        cout<<"string& assign (const string& str, size_t subpos, size_t sublen);"<<endl;
        cout<<str2<<endl;
    
        system("pause");
    
        return 0;
    }
    =>string& assign (const string& str, size_t subpos, size_t sublen);
      brown fox
  • 原型:string& assign (const char* s);
  • 说明: 用char型字符串s赋值给当前字符串。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str3;
        str3.assign("c-string");
        cout<<"string& assign (const char* s);"<<endl;
        cout<<str3<<endl;
    
        system("pause");
    
        return 0;
    }
    =>string& assign (const char* s);
      c-string
  • 原型:string& assign (const char* s, size_t n);
  • 说明: 用char型字符串s的前n个字符赋值给当前字符串。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str4;
        str4.assign("pangrams are cool",7);
        cout<<"string& assign (const char* s, size_t n);"<<endl;
        cout<<str4<<endl;
    
        system("pause");
    
        return 0;
    }
    =>string& assign (const char* s, size_t n);
      pangram
  • 原型:string& assign (size_t n, char c);
  • 说明: 用n个字符c赋值给当前字符串。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str5;
        str5.assign(10,'*');
        cout<<"string& assign (size_t n, char c);"<<endl;
        cout<<str5<<endl;
    
        system("pause");
    
        return 0;
    }
    =>string& assign (size_t n, char c);
      **********
  • 原型:template < class InputIterator>string& assign (InputIterator first, InputIterator last);
  • 说明: Copies the sequence of characters in the range [first,last), in the same order.
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str0="The quick brown fox jumps over a lazy dog.";
    
        string str6;
        str6.assign(str0.begin()+16,str0.end()-12);
        cout<<"template < class InputIterator>string& assign (InputIterator first, InputIterator last);"<<endl;
        cout<<str6<<endl;
    
        system("pause");
    
        return 0;
    }
    =>template < class InputIterator>string& assign (InputIterator first, InputIterator last);
      fox jumps over
  • 原型:string& assign (initializer_list il);
  • 说明: Copies each of the characters in il, in the same order.
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str7;
        str7.assign<int>(10,0x2D);
        cout<<"string& assign (initializer_list<char> il);"<<endl;
        cout<<str7<<endl;
    
        system("pause");
    
        return 0;
    }
    =>string& assign (initializer_list<char> il);
      ----------

参考文献:
[1] 网络资源:
http://www.cplusplus.com/reference/string/string/operator=/
http://www.cplusplus.com/reference/string/string/assign/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值