C++STL字符串

来源:互联网 发布:新闻发布后台 php 编辑:程序博客网 时间:2024/06/05 10:22

因为笔者水平有限如有不足,还望大家多多指出,避免误解.微笑

一:string的函数

<span style="font-size:14px;">/*string的好处  一:多了更多的函数比char好  二:可以赋值重定义  三:不必事先知道要定义多大  string的坏处  一:所有的函数运行较慢  二:下标从0开始,不可以从一开始*///string构造函数//构造一个string型的空字符串(string)string a;//string释放函数(~string)//将a字符串的内存释放a.~string();//string读入函数 (cin)cin>>a;//string赋值函数(=)//把123这个字符串放在a字符串里面a="123";//string交换函数(swap)//把a串和b串的内容交换//a="123" b="234"//交换后a="234",b="123"a="123";b="234";swap(a,b);//string连接函数(+)//把a串="123"和b串="223"连接//b串在a串的尾部a="123";b="223";a=a+b;a="123223"//string插入字符(字符串)函数(insert)//a="asdasd",s="123456",i=1,n=3,q=2//在a字符串的第i个位置下插入字符串s//在a字符串的第i个位置下插入字符串s前n个字符//在a字符串的第i个位置下插入字符串s从q的位置下连续的n个字符s="123456";a="asdasd";a.insert(i,s); //a="a123456sdasd"a.insett(i,s,n);//a="a123sdasd"a.insert(i,s,q,n);//a="a234sdasd"//string查找函数(find rfind)//rfind从后面找 find从前面找,功能一样//a="123456";s="123";c='1';n=1;//从pos开始查找字符c在当前字符串的位置//从pos开始查找字符串s在当前串中的位置//从pos开始查找字符串s中前n个字符在当前串中的位置a="123456";k=a.find(c,0);//k=0k=a.find(s,0);//k=0k=a.find(s,0,n);//k=0//string删除函数(erase)//a="123456";first=1;last=2;//删除first到last之间的所有字符a.erase(first,last);//a="1456";//string替换函数(replace)//a="123456";s="smq";po=2;sm=2;n=1;c="1"//删除从p0开始的n0个字符,然后在p0处插入串s//删除p0开始的n0个字符,然后在p0处插入字符串s的前n个字符//删除p0开始的n0个字符,然后在p0处插入n个字符ca.replace(p0,n0,s);//a="12smq56"a.replace(p0,n0,s,n);//a="12s56"a.replace(p0,n0,c);//a="121"//string截取字串函数(substr)//a="123456";n=0;m=2;//把字符串a的从n到m中的字符截取出来s=a.substr(n,m);//s="123" a="123456"</span>

二:string的类型:

string是属于STL的一种数据结构,是STL中迭代器,容器,算法中的容器.他是专门针对字符类处理,因为C/C++再没有string的时候是非常麻烦,比如说不能重定义,这一点是重中之重,因为很多时候都会特别麻烦,得用一重循环去赋值,而string可以直接=号解决.有的时候想要连接两个字符串,string可以直接+号(完美),而char*和char s[],呵呵不用解释.这两点估计你就要放弃char了,莫急等我说说string的坏处,string的函数虽然神通广大但是,时间效率却是大跌眼镜,是O(串长),这不跟char差不多,但是好歹好用一些.听了这一点你又会犹豫不决,没关系好用才是char的硬伤委屈.

预知后事如何请看下回分晓(等待更新)

0 0
原创粉丝点击