资源描述:
《C++中的string常用函数用法总结》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C++中的string常用函数用法总结首先,为了在我们的程序中使用string类型,我们必须包含头文件。如下:#include//注意这里不是string.hstring.h是C字符串头文件#includeusingnamespacestd;1.声明一个C++字符串声明一个字符串变量很简单:stringStr;这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参数,所以就直接使用了string的默认的构造函数,这个函数所作的就是把Str
2、初始化为一个空字符串。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
3、) 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()//销毁所有字符,释放内存都很简单,我就不解释了。2.字符串操作函数这里是C++字符串的重点,我先把各种操作函数罗列出来,不喜欢把所有函数都看完的人可以在这里找自己喜欢的函数,再到
4、后面看他的详细解释。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()
5、 //判断字符串是否为空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
6、)rbegin()rend()//逆向迭代器y)get_allocator()//返回配置器下面详细介绍:2.1C++字符串和C字符串的转换C++提供的由C++字符串得到对应的C_string的方法是使用data()、c_str()和copy(),其中,data()以字符数组的形式返回字符串内容,但并不添加'/0'。c_str()返回一个以‘/0'结尾的字符数组,而copy()则把字符串的内容复制或写入既有的c_string或字符数组内。C++字符串并不以'/0'结尾。我的建议是在程序中能使用C++字符串就使用,除非万不得
7、已不选用c_string。由于只是简单介绍,详细介绍掠过,谁想进一步了解使用中的注意事项可以给我留言(到我的收件箱)。我详细解释。2.2大小和容量函数一个C++字符串存在三种大小:a)现有的字符数,函数是size()和length(),他们等效。Empty()用来检查字符串是否为空。b)max_size()这个大小是指当前C++字符串最多能包含的字符数,很可能和机器本身的限制或者字符串所在位置连续内存的大小有关系。我们一般情况下不用关心他,应该大小足够我们用的。但是不够用的话,会抛出length_error异常c)capa
8、city()重新分配内存之前string所能包含的最大字符数。这里另一个需要指出的是reserve()函数,这个函数为string重新分配内存。重新分配的大小由其参数决定,默认参数为0,这时候会对string进行非强制性缩减。还有必要再重复一下C++字符串和C字符串转换的问题,许多人会遇到这样的问题,自