C++STL字符串

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

一: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=0
k=a.find(s,0);//k=0
k=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个字符c
a.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的硬伤委屈.

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值