一 标准库类型 string 是可变长的字符序列,使用string类型需要:
#include<string>
using namespace std; or using std::string;
二 定义与初始化
直接初始化 拷贝初始化
string s1;
string s2("hah"); string s2'=''hah";
string s3(n,'c'); string s3'="cccccccccc"; \\n个c
string s4(s3); string s4'=s3';
string s6(s2,pos2,len2) \\s6是s2从下标pos2开始len2个字符,至多拷贝s2.size()-pos2个字符
三 string对象上的操作
os<<s 将s输出 到os流 is>>s 将is流中数据(读取)输入到s \\string类型在读取数据时,从第一真正字符开始 直到遇见第一个空格结束
getline(is,s) 将is流中数据读取内容直到换行符结束输入到s(不包括换行符\\实现 string读取一整行内容,包括空格
string s1="he",s2="wo"; string s3=s1+s2; \\将s1与s2连接起来
string s4=s1+“,”+s2; \\将string类型与字符串字面值连接起来,但是字符串字面值不能直接相加,例“he”+“,”
四 string对象中字符的操作
遍历string中每一个字符: for(auto c:str){ }
改变(引用)string中每个字符: for(auto &c:str){ c=toupper(c);}
利用下标随机访问 str[2](下标从0开始计数)
利用下标迭代访问 for(decltype(str.size()) index=0;index!=s.size()&&!isspace(s[index]);++index ){ } \\下标 index类型为string::size_type
五 string类的函数
bool string::empty(); \\返回bool型
string::size_type string::size(); \\返回size_type型(string中的无符号整形数 unsigned int)
string string::substr(pos1,len1) \\返回string中从pos开始len1个字符,返回一个新的string
string string::append(“args ”) \\在string尾部添加指定字符args,返回string的引用
string string::replace(range,“args”) \\在string中删除pos1到pos2的字符,替换为指定字符args,返回 string的引用,range可以是pos1,pos2也可以是pos1和len1
string::size_type string::find(args) \\在string中查找args第一次出现的位置
string::size_type string::rfind(args) \\在string中查找args最后一次出现的位置
string::size_type string::find_first_of(args) \\在string中查找args中任何一个字符第一次出现的位置
string::size_type string::find_last_of(args) \\在string中查找args中任何一个字符最后一次出现的位置
string::size_type string::find_first_not_of(args)\\在string中查找第一个不在args中的字符
string::size_type string::find_last_not_of(args) \\在string中查找最后一个不在args中的字符
int compare(const char *s) \\与s比较
int compare(int pos, int n,const char *s)
int compare(int pos, int n,const char *s, int pos2) compare函数在>时返回1,<时返回-1,==时返回0