【C++】STL-string

与char*不太相同,string直接就代表一个字符串的对象,string是类,而创建出来的变量就是对象。

STL

同所有的stl容器一样,差不多的函数都可以使用。

begin、end、front、back、size、capacity、push_back、pop_back。

其中,只有list有push_front和pop_front,其余都有push_back和pop_back。

其中string的push_back,添加的是字符,而不是字符串。

后续的还有insert、erase、clear、substr、append、find、replace。

还有reverse,这是单独使用迭代器的独立函数,而不是像find等,对象函数。


getline(cin,str)

cin的时候,以:空格、tab或回车作为结束标志。

如果想连同空格一起输出显示,如下:

string str;
getline(cin,str);
cout<<str;

形如这种操作才可以。


str1.compare(str2)

输出第一个不同字符的比较结果,大于返回1,小于返回-1,相等返回0。

也就是说,如果str1是abc,str2是abd的话,如题就是-1,对应位置比较之后,c的ASCII值小于d,因此,str1没比过str2,那就是-1了。


str1.insert(i,str2)

从str1的下标i处加入str2,例如i是2,那就从前两个之后开始,加入str2,后续拼接起来全部。

string str="abcd";
string strx="XXX";
char c='Y';

str.insert(2,strx);
//abXXXcd

str.insert(3,1,c);
//abcYd
//如果插入字符那必然是1个字符,但是1也不能少。

str.erase(3,4)

形如abcdefgh,3是从下标3开始,也就是d处,要加减都从d前面开始,4表示4个字符,那么结果就是:abch。

str2=str.substr(3,4)

形如abcdefg的3和4,结果就是defg。

str.append(str2)

在str结尾处加入str2,也可以像之前insert一样,append(1,'a');

str.replace(ite1,ite2,str2)

讲迭代器中间的位置全部换成str2。

str.find(char或str)

返回的是字符或字符串第一次出现的下标,如果没找到就是乱码。

reverse(ite1,ite2)

这个是翻转特定位置的字符串,与其他不同的是,这是一个单独的函数!

str.c_str()

将string转为const char*,用const char*来接住。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值