#include<string>
#include<iostream> #include<string> using namespace std; int main(){ string s1;//变量s1只定义为初始化,编译器给默认值空字符串"" string s2 = "C Plus Plus";//s2在定义时同时被初始化为"C Plus Plus"。与C风格字符串不同,string的结尾没有结束标志'/0' string s3 = s2;//s3定义时使用s2进行初始化 string s4(5,'s');//s4被初始化为由5个's'组成的字符串"sssss" return 0; }
函数名 | 解释 |
---|---|
length() | 计算字符串长度,返回字符串真实长度 |
c_str() | 将C++风格string转换位C风格字符串,返回字符串指针 |
insert(pos,str) | 在string字符串中指定的位置pos插入另一个字符串str. |
erase(pos,len) | 在string字符串中指定位置pos删除长度为len的子串。(len未指明则删除到末尾) |
substr(pos,len) | 在string字符串中提取从指定位置pos开始,长度为len的子串 |
string类重载了输入输出运算符,即在C++中可以使用输入输出流(<<, >>)进行输入输出.
string可以采用下标的方式进行访问,其起始下标依旧是从0开始的。
string类的拼接使用+或+=运算符来直接拼接字符串,不需要担心溢出问题。
使用+来拼接字符串,两侧可以都是string,也可以是一个string字符串,一个C风格字符串、string字符串和字符数组、string字符串和单独字符。
string类提供了如下几个与字符串查找有关的函数:
find()函数用于在string字符串中查找子字符串出现的位置,有如下两种原型:
其中"str""c"表示待查找的子字符串或字符,"pos"表示开始查找的位置,若不指明,默认从第0个字符开始。
当找到子字符串,返回子字符串第一次出现在字符串中的起始下标,若没找到,则返回无穷大值(-1)。
rfind()函数与find()函数类似,与之不同的是该函数从头开始进行查找,直到pos所指明的位置为止,查找到,返回子字符串第一次出现的起始下标,若没找到,返回无穷大值(-1)。
find_first_of()用于查找子字符串和字符串共同具有的字符在字符串中首次出现的位置。
该函数用于在数组或容器中寻找最大值或最小值,具体使用方法如下:
//数组 int position = max_element(a,a+n)-a; int data = *max_element(a,a+n); //容器 int position = max_element(v.begin(),v.end())-v.begin; int data = *max_element(v.begin(),v.end()); //string int position = max_element(s.begin(),s.end())-s.begin(); char data = *max_element(s.begin(),s.end());
若使用该函数检查的数组或容器有多个最值,该函数只返回第一次出现的位置。