string的常见用法

时间:2021-09-10 10:14:04

使用前提:需要头文件!

#include<string>
using namespace std;

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

string::iterator it;

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

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

 #include<iostream>
#include<string>
using namespace std;
int main(){
string str1 = "abcdef",str2 = "opq";
//第一种写法
str1.insert(,str2);
cout<<str1<<endl;
/*第二种写法
str1.insert(str1.begin()+3,str2.begin(),str2.end());
cout<<str1<<endl;
*/
//最后说一下怎么用printf输出
printf("%s\n",str1.c_str());
}

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

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

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所指向位置的元素不会被替换掉!!