使用前提:需要头文件!

#include<string>
using namespace std;

1、string类型是可以下标访问的,也可以通过迭代器访问

string::iterator it;

2、length(),size()来返回string字符串的长度。

3、insert()函数,这里说两种写法

 1 #include<iostream> 
 2 #include<string>
 3 using namespace std;
 4 int main(){
 5     string str1 = "abcdef",str2 = "opq";
 6     //第一种写法 
 7     str1.insert(3,str2);
 8     cout<<str1<<endl;
 9     /*第二种写法
10     str1.insert(str1.begin()+3,str2.begin(),str2.end());
11     cout<<str1<<endl;
12     */
13     //最后说一下怎么用printf输出
14     printf("%s\n",str1.c_str());
15 }

View Code

4、erase()函数也是有着三种形式,用来删除字符。

 1 #include<iostream> 
 2 #include<string>
 3 using namespace std;
 4 int main(){
 5     string str1 = "abcdef",str2 = "opq";
 6     //第一种写法 
 7     str1.insert(3,str2);
 8     //删除第0号位元素 
 9     str1.erase(str1.begin());
10     cout<<str1<<endl;
11     //删除一个区间(2,4)的写法
12     str1.erase(str1.begin()+2,str1.begin()+4);
13     cout<<str1<<endl;
14     //删除从一个位置起始长度为x的字符串
15     str1.erase(1,3);
16     cout<<str1<<endl;
17 }

View Code

5、clear()用来清除全部元素。

6、substr(pos,len)用来求从pos号开始、长度为len的子串。或写为substr(pos)也就是从pos开始到末尾的子串。

7、find(str2)函数,当str2是str1的子串时,返回其在str1中第一次出现的位置;若str2不是str1的子串,那么返回的是string::npos。string::npos是一个常数,值为-1,由于是unsigned_int类型也可认为是4294967295。就记住他是-1就好了~~~

或者find()函数还可以写为:find(str2,pos)意思就是从str1的pos位置开始往后匹配str2,返回值与上同。

8、replace()函数:写法有两种与erase很像。

str1.replace(pos,len,str2);   意思就是从pos开始往后len长度的字符串全部替换为str2。

str1.replace(it1,it2,str2);  意思就是迭代器[it1,it2)替换为str2。注意了迭代器右边是“)”也就是说不会被it2所指向位置的元素不会被替换掉!!

版权声明:本文为javier2018原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/javier2018/p/8544293.html