初始化:
string imBlank;//无内容string,长度为零
string heyMom("Where are my socks?");//内含字符串Where are my socks?
string standardReply = "Beamed into deep "
"space on wide angle dispersion?"; /*内含字符串Beamed into deep space on wide angle
dispersion?*/
string useThisOneAgain(standardReply);//以standardReply内字符串初始化useThisOneAgain。
string s4(s1, 0, 8);//用s1串中第一个到第八个字符初始化s4。
s1.substr(20, 10);//取第21(索引为20)到第31个字符的子串(长度10)。
string s(source.begin(), source.end());//用串source初始化s串。
string okay(5, 'a');//以”aaaaa”初始化okay。
操作:
bigNews.size();//取得串bigNews的长度(即所含字符数)。
bigNews.capacity();//取得bigNews的容量,即当前已经分配给它的内存大小。
bigNews.reserve(500);//将bigNews的容量设置为500。
bigNews.append("I've been working too hard.");//将I've been working too hard.添加到bigNews的尾部,相当于bigNews += I've been working too hard.。
替换string中的字符:
s.insert(8, tag + ' ');//在串s的第9个字符位置插入字符串tag和一个空格。
s.replace(1, 3, "hello there");//从第二个字符开始,用hello there替换掉3长度的字符(例如本来s=”12345678”,刚结果变成s=”1hello there5678”)。
modifyMe.find(findMe, 0);//在字符串的第一个字符开始查找第一个与字符串findMe相匹配的子串。
string a = “axbde”;char b = a[1];óchar c = a.at(1)//b和c的值都为’x’,但当[]方法越界时程序表现不出异常,而at()方法在越界时会抛出异常。
string查找函数:
find( )
查找一个指定的字符(字符组合),返回找到该字符(字符组合)的第一个匹配字符(字符串)的(起始)坐标或在未找到时返回npos。
find_first_of( )
查找指定字符串,返回该字符串的第一个匹配子串的起始坐标或在未找到时返回npos。
find_last_of( )
查找指定字符串,返回该字符串的最后一个匹配子串的起始坐标或在未找到时返回npos。
find_first_not_of( )
查找不含指定字符串中任何字符的第一个匹配位置,返回其坐标或在未找到时返回npos。
find_last_not_of( )
查找不含指定字符串中任何字符的最后一个匹配位置,返回其坐标或在未找到时返回npos。
rfind( )
反向(从右往左)查找一个指定的字符(字符组合),返回找到该字符(字符组合)的第一个匹配字符(字符串)的(起始)坐标或在未找到时返回npos。
string成员函数erase()的用法如下:(假设有string a;)
a.erase(pos,n); 删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符
a.erase(position);删除position处的一个字符(position是个string类型的迭代器)
a.erase(first,last);删除从first到last之间的字符(first和last都是迭代器)
成员比较函数a.compare(string);//比较串a与串compare是否相等。
重写char_traits<char>可以使string比较时不区分大小写(大小写不敏感)。
16位字符这里就不详述了。