`
lovecontry
  • 浏览: 1033421 次
文章分类
社区版块
存档分类
最新评论

C++编程思想第二版第二卷读书笔记2——深入学习string类

 
阅读更多

初始化:

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)//bc的值都为’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);删除从firstlast之间的字符(firstlast都是迭代器)

成员比较函数a.compare(string);//比较串a与串compare是否相等。

重写char_traits<char>可以使string比较时不区分大小写(大小写不敏感)。

16位字符这里就不详述了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics