抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。可以用=进行赋值操作,==进行比较,+做串联。可以把它看成是C++的基本数据类型。首先,为了在程序中使用string类型,必须包含头文件。如下:#include<string>//++字符串声明一个字符串变量很简单:stringStr;这样就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参数,所以就直接使用了string的默认的构造函数,这个函数所作的就是把Str初始化为一个空字符串。String类的构造函数和析构函数如下:a)strings;//生成一个空字符串sb)strings(str)//拷贝构造函数生成str的复制品c)strings(str,stridx)//将字符串str内“始于位置stridx”的部分当作字符串的初值d)strings(str,stridx,strlen)//将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值e)strings(cstr)//将C字符串作为s的初值f)strings(chars,chars_len)//将C字符串前chars_len个字符作为字符串s的初值。g)strings(num,c)//生成一个字符串,包含num个c字符h)strings(beg,end)//以区间beg;end(不包含end)内的字符作为字符串s的初值i)s.~string()//销毁所有字符,)=,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)<<//将谋值写入streamr)copy()//将某值赋值为一个C_strings)c_str()//将内容以C_string返回t)data()//将内容以字符数组形式返回u)substr()//返回某个子字符串v)查找函数w)begin()end()//提供类似STL的迭代器支持x)rbegin()rend()//逆向迭代器y)get_allocator()//++字符串和C字符串的转换C++提供的由C++字符串得到对应的C_string的方法是使用data()、c_str()和copy(),其中,data()以字符数组的形式返回字符串内容,但并不添加
c++ string类详解 来自淘豆网m.daumloan.com转载请标明出处.