Blog·Tanky WooABOUTRSS

《C++标准程序库》学习笔记9 — 第十一章

30 Jan 2011
这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。

这一章讲的是string类型,内容很多,但是不难,都是一些string的成员,需要记住用法。

和C-string不同,string对象的字符串皆为并没有特殊字符'\0'

 

在搜寻string时,如果失败,则返回一个特殊值npos,在检验返回值是否是npos时,应该用string::size_type类型去比较,而不是int或unsigned int。

sizetype是一个不带正负号的整数型别。要注意类型之间的转换,不要试图拿sizetype与int比较,当int变量为0时,size_type任何变量都比0大。(P476例二)

npos只是一个表示返回失败的特殊值,并不是string的长度。

 

在string的构造函数中:

string s(str, stridx)

表示将字符串str内"始于位置stridx"的部分,当做字符串s的初值

string s(chars, charslen)_

表示以C-string chars的chars_len个字符为字符串s的初值

注意这两个的区别

 

data()和c_str()返回的字符数组由该字符串本身拥有,所以不要修改它或释放其内存,否则导致字符数组无效。

 

本章其余都是需要记忆的东西,首先得学会用,然后慢慢的用多了,自然就记住了。