string的常见用法
使用前提:需要头文件!
#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所指向位置的元素不会被替换掉!!