首页 > 其他分享 >std::string assign

std::string assign

时间:2022-08-16 11:00:24浏览次数:84  
标签:std cout base str assign string

参考 std::string

#include<iostream>
#include<string>
using namespace std;

int main()
{
   string str;
   string base = "The quick brown fox jumps over a lazy dog.";
   char c_string[] = "c-string";
   char *pCString = "the point to a string of C type";

    //string (1)	string& assign (const string& str);
    str.assign(base);
    cout << "string 1: " << str << endl;

    //substring (2)	string& assign (const string& str, size_t subpos, size_t sublen = npos);
    str.assign(base, 10, 9);
    cout << "substring 2:" << str << endl;

    // c-string 3 string& assign (const char* s);
    str.assign(c_string);
    cout << "c-string 3" << str << endl;

    // buffer (4)	string& assign (const char* s, size_t n);
    str.assign(pCString, 5);
    cout << "buffer 4 : " << str << endl;

    // fill (5)	string& assign (size_t n, char c);
    str.assign(10, '*');
    cout << "fill 5 : " << str << endl; 

    // range 6 template <class InputIterator>
    str.assign(base.begin() + 16, base.end()-12);
    cout << "range 6 : " << str << endl;

    // initializer list(7)	string& assign (initializer_list<char> il);
    initializer_list<char> il{'2','s','b'};
    str.assign(il);
    cout << "initializer list 7:" << str << endl;

    // move 8
    string&& str_move("this is nove");
    str.assign(str_move);
    cout << "move 8 str : " << str << ", str_move : " << str_move << endl;

    return 0;
}

注意:

  1. assign 的本质是重新分配空间来保持数据(至少从表现上来看是这样的)
  2. initialize_list 中数据类型只能是 char,如果是其他类型的组合,则不通过
  3. move 的表现并不是和 str_move 交换数据,而是 copy?

标签:std,cout,base,str,assign,string
From: https://www.cnblogs.com/wanghao-boke/p/16590827.html

相关文章

  • Blob转字符串(Blob to string)
    方法1://data:指待读取blob数据letreader=newFileReader();reader.onload=event=>{//读取之后进行操作的代码区域,event.currentTarget.re......
  • StringBuffer和StringBuilder
    StringBuffer线程安全;执行效率:StringBuilder> StringBuffer>String ......
  • 459.repeated-substring-pattern 重复的子串
    假设一个字符串,是由一个重复的子串组成的,那么它的最长相等前后缀必然与整个字符串的必然相差了一个重复子串的长度。假设整个字符串的长度为len,那么next[len-1]+1就是......
  • c++标准IO 中的string流
    c++标准IO中的string流sstream头文件sstream头文件定义了三个类型来支持内存和string之间的IO,在用户看来,string类就像是一个IO流一样。istringstream处理行内的多......
  • Request.QueryString 的用法
    https://blog.csdn.net/dragon_ton/article/details/49464413?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogComme......
  • String的使用
    1.String的使用Strings1=“abc”;//字面量的定义方式Strings2=“abc”;System.out.println(s1==s2)//true,s1、s2指向同一个地址 1.String声明为final的,不可......
  • CF EDU 96 E - String Reversal
    贪心、逆序对E-StringReversal题意给一个长度为n的字符串s,(n<=2e5),把s反转后的字符串记为s',每次只可以交换相邻两个字符,求把s变为s'的最小次数思路......
  • String.valueOf 出来的值为null,null为一个字符串
    id为null时候,这个null为一个字符串,当用  StringUtils.isBlank判断时候会出现false  改用 ......
  • 159. Longest Substring with At Most Two Distinct Characters
    Givenastring s ,findthelengthofthelongestsubstring t  thatcontains atmost 2distinctcharacters.Example1:Input:"eceba"Output:3Explanat......
  • Incorrect string value EFCore使用MySQL数据库GUID类型的字符串映射问题
    1.MySQL中需要存储36位GUID,EFCore字段映射位GUID类型,EFCore添加的时候报错:Incorrectstringvalue2.第一种解决方式:设置GUID字符集publicclassBizReviewEntityConfigu......