一、初始化
string a;//被默认初始化为空字符串
string b = a;//拷贝初始化,值与a一样
string c = "hello";//c是"hello"字面值 除最后面的 空字符外的副本,
string d(c);//等价于 string d = c
string e("hello");//等价于 string e = "hello"
string f(n,'c');//f为连续n个c组成,于 string f = string(n,'c') 等价
二、string上的操作
os << s //写 流os
is >> s //读取is流
getline(cin,s) //从cin中读取一行存入 s中
s.empty() //判断s是否为空
s.size() //返回s中字符的个数
s[n] //返回s中第n个字符的引用,位置从0开始计
s1 + s2 //返回s1,s2连接后的结果, 可以与字面值相加,但是 + 两边至少有一个是string类型
s1 = s2;
s1==s2 //判断s1,s2是否相等
s1 != s2
<, <=, >, >= //利用字符在字典中的顺序进行大小比较,且对字母的大小写 敏感
string:: size_type 是一个无符号类型
三、对string中的每个字符进行操作
范围for(declaration : expression)
//此语句会遍历expression中的每一个基础元素。declaration负责定义一个变量,每次迭代,被初始化为下一个基础元素
for(auto c : s)
operation
改变一个字符
在cctype头文件中定义了 一些标准库函数处理这部分工作。
isalum(c) //是否是字母或者 数字
isalpha(c) //是否是字母
iscntrl(c) //是否是控制字符
isgraph(c) //当c不是空格,但可以打印时为真
islower(c) //是否是 小写 字母
isprint(c) //是否可打印
ispunct(c) // 是否是标点符号
isspace(c) //是否为空白
isupper(c) //是否为大写
isxdigit(c) // 是否是十六进制数字
tolower(c) //变为 小写
toupper(c) //变为 大写
改变字符用 引用
for (auto &c : s)
四、处理 一部分字符
使用下标运算符;或者迭代器