1. string 常见操作
1 |
1.1.string创建
1 | string str1 = "123"; |
1.2. string 与 char* 互转
1 | // string 转 char* c_str(); |
1.3. 遍历
str.at(i)
和 str[i]
,区别在于 str.at(i)
如果数组越界会报异常,而str[i]
不一定
1 | try{ |
1 | string str("1234567"); |
1.4. 添加
str1 = str1 + str2;
str1 = str1.append(str2);
1 | int main(){ |
打印结果
1 | 123456 |
1.5. 删除
str1.erase(it);
1 | string str1 = "123 abc 123 abc 123"; |
打印结果:
1 | // 删除一个节后都会从头开始计算 |
1.6. 替换
str1.replace(0,6,"1234");
:从0开始,替换6个字符
1 | string str1 = "123 abc 123 abc 123"; |
打印结果:
1 | 1234c 123 abc 123 |
1.7. 查找
str1.find("123",0);
:// 查找谁,从哪里开始str1.rfind("123");
:// 从后面往前找
1 | string str1 = "123 abc 123 abc 123"; |
打印结果:
1 | 0,16 |
1.8. 大小写转换
transform(str1.begin(),str1.end(),str1.begin(),::toupper);
:转大写transform(str1.begin(),str1.end(),str1.begin(),::tolower);
:转小写
1 | int main(){ |
2. c++ 相对 c 的一些增强
2.1 实用性增强
1 | int a; |
2.2 register 增强(c中报错,c++可以通过)
1 | // 寄存器上面的变量不能取地址,register 快速 |
2.3 参数增强 (以下代码,c中没问题,c++中会检测报错)
1 | // 参数处理增强 |
2.4 检测增强 (以下代码,c中没问题,c++中会检测报错)
1 | f(){ |
3. const 关键字
const 使用场景:
1 | // 1. 修饰变量不可改变 |
区别:
- c 里面 const 是一个伪命题,可以通过指针去操作,编译时期的检测
- c++ 里面不光在编译时期做处理,还在运行时做了处理
4. 引用加强
其实引用的本质就是 指针
1 | class Student { |