现在的位置: 首页 > 综合 > 正文

C++ string 的学习摘录

2012年01月18日 ⁄ 综合 ⁄ 共 1558字 ⁄ 字号 评论关闭

之所以抛弃char *的字符串而选用C++标准程序库中的string类,是因为它和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,它集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用  = 进行赋值操作, ==进行比较, 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。

首先,为了在我们的程序中使用string类型,我们必须包含头文件 <string>。如下: 

#include <string>                         //注意这里不是string.h (string.hC字符串头文件)

1.声明一个C++字符串 

声明一个字符串变量很简单: 

string
 Str; 

这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参数,所以就直接使用了string的默认的构造函数,这个函数所作的就是把Str初始化为一个空字符串。String类的构造函数和析构函数如下:

a) string s;        //生成一个空字符串

b) string s(str)         //拷贝构造函数 生成str的复制品 

c) string s(str,stridx)         //将字符串str"始于位置stridx"的部分当作字符串的初值 

d) string s(str,stridx,strlen)     //将字符串str"始于stridx且长度顶多strlen"的部分作为字符串的初值 

e) string s(cstr)         //C字符串作为s的初值 

f) string s(chars,chars_len)      //C字符串前chars_len个字符作为字符串s的初值。 

g) string s(num,c)             //生成一个字符串,包含numc字符 

h) string s(beg,end)         //以区间beg;end(不包含end)内的字符作为字符串s的初值 

i) s.~string()     //销毁所有字符,释放内存 

都很简单,我就不解释了。 

字符串操作函数 

这里是C++字符串的重点,我先把各种操作函数罗列出来,不喜欢把所有函数都看完的人可以在这里找自己喜欢的函数,再到后面看他的详细解释。 

a) =,assign()     //赋以新值 

b) swap()//交换两个字符串的内容 

c) +=,append(),push_back()     //在尾部添加字符 

d) insert()          //插入字符 

e) erase()//删除字符 

f) clear()   //删除全部字符 

g) replace()       //替换字符 

h) + //串联字符串 

i) ==,!=,<,<=,>,>=,compare()   //比较字符串 

j) size(),length()        //返回字符数量 

k) max_size()   //返回字符的可能最大个数 

l) empty()//判断字符串是否为空 

m) capacity()    //返回重新分配之前的字符容量 

n) reserve()      //保留一定量内存以容纳一定数量的字符 

o) [ ], at()//存取单一字符 

p) >>,getline()  //stream读取某值 

q) << //将谋值写入stream 

r) copy()   //将某值赋值为一个C_string 

s) c_str()  //将内容以C_string返回 

t) data()   //将内容以字符数组形式返回 

u) substr()         //返回某个子字符串

抱歉!评论已关闭.