头文件:#include<string>
1. string 的定义
string str;
2. string 的初始化
可以直接给字符串变量赋值。
string str="hello";
cout<<str<<endl;
//hello
3. string 的长度
返回当前字符串长度的函数有 size() 和 length(),二者功能基本相同。
string str="hello";
cout<<str.size()<<endl;
//5
4. string 元素的访问
① 可以像数组那样通过元素下标进行访问,下标从 0 到 size()-1
② 可以通过迭代器进行访问,迭代器类似于指针
string str="hello";
for(int i=0;i<str.size();i++){
cout<<str[i]<<" ";
}
//h e l l o
for(string::iterator it=str.begin();it!=str.end();it++){
cout<<*it<<" ";
}
//h e l l o
5. string 中的元素操作
常用的元素操作有:
元素操作 | 含义 |
---|---|
insert() | 在任意位置插入元素 |
erase() | 在任意位置删除元素 |
clear() | 将字符串清空 |
其中的erase() 函数:
erase(pos,n); 删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符
string str="hello";
str.insert(str.size()," world");
cout<<str<<endl;
//hello world
str.erase(0,5);
cout<<str<<endl;
// world
str.insert(0,"the");
cout<<str<<endl;
//the world
str.erase(4);
cout<<str<<endl;
//the w
str.clear();
cout<<str<<endl;
//
6. string 的运算符
string 可以像数组一样进行运算,但不是进行加减乘除这样的逻辑运算,而是可以将两个或多个字符串拼接成一个更长的字符串。运算符有“+” 和 “+=”。
string str="hello";
str+="world"
cout<<str<<endl;
//helloworld
7. string 的比较
string 可以按照字典序进行大小比较,比较运算符有 > , < , >= , <=,判断是否相等:==, !=
string s1="a";
string s2="ab";
string s3="bb";
string s4="a";
if(s1==s4) printf("s1==s4\n");
if(s1<s2) printf("s1 < s2\n");
if(s3>s2) printf("s3 > s2\n");
//s1==s4
//s1 < s2
//s3 > s2
8. string 的常用函数
① find() :在字符串中寻找特定字符或字符串。若找到相应的字符或字符串则返回其在该字符串中第一次出现的位置,若找不到则返回 string::npos
(-1)
② substr(pos , len) :返回从 pos 位开始,长度为 len 的子串。若省略第二个参数 len,或 len 超过了字符串的长度,则求出来的子串为从 pos 位一直到字符串结束的部分。
③ swap() :交换两个string对象的内容。
string str="hello";
cout<<str.find('e')<<endl;
if(str.find('w')==string::npos){
printf("not found\n");
}
//1
//not found
string st=str.substr(1,2);
cout<<st<<endl;
//el
str.swap(st);
cout<<str<<endl;
cout<<st<<endl;
//el
//hello