C++之string类初识

string类-------头文件包含#include<string>

1、string:std提供的标准字符串处理的类 class string;(成员变量,方法)

特点:可变长(动态分配,不再关注字符串的长度)

2、属性:

1)size():string的大小,不包含‘\0’

2)length():string的长度,不包含‘\0’

3)empty():判断字符串是否为空 返回的是bool值

4)capacity():返回的是string当前的容量

5)resize():重置string的大小,并且也可以用字符填充多余的空间

 

string类型转换成char *-------------c_str() 为了兼容c语言的函数接口

eg :string s("hello world"); char * p = s.c_str();

 

3、string的输入和输出

1)string s; cin >> s;

2)string s; getline(cin, s); //getline()全局函数,以换行符'\n'隔开

3)string s; cout >> s;

4、string的遍历

1)string s; s[i] ;

2)string s; s.at(i);

[ ] VS at(): [ ]不会进行越界检查,at( )会做出越界检查

5、迭代器iterator :指针(内部)

创建一个string类对象的时,同时会创建两个内部指针,一个指向第一个字母(s.begin()),一个指向最后的‘\0’(s.end())。

string s("hello world");

正向迭代器------string:: iterator begin_it = s.begin();

正向迭代器------string:: iterator end_it = s.end();

 

反向迭代器------string:: reverse_iterator begin_it = s.rbegin();

反向迭代器------string:: reverse_iterator end_it = s.rend();

 

const迭代器-----string:: const_iterator begin_it = s.cbegin();

const迭代器-----string:: const_iterator end_it = s.cend();

 

6、string的赋值

1)运算符 =

2)string s; s.assgin();

7、string的连接

1)运算符 +

2)string s; s.append();

8、string的比较

1)运算符 == > < >= <=

2)string s; s.compare();

9、string的子串

1)string s; s.substr();

10、string的交换

1)string s; s.swap();

11、string的查找

1)string s; s.find(); ---- 找到则返回第一个字符的位置,找不到则返回string:: npos

2)string s; s.find_first_of(search_str); 查找目标字符串(search_str)中任意一个字符在s里面第一次出现的位置。

3)string s; s.find_first_not_of(search_str); s中第一个不是目标字符串中任意一个字符的位置。

4)string s; s.find_last_of(search_str); 查找目标字符串(search_str)中任意一个字符在s里面最后一次出现的位置。

5)string s; s.find_last_not_of(search_str); s中最后一个不是目标字符串中任意一个字符的位置

12、string的替换

1)string s; s.replace();

13、string的插入

1)string s; s.insert();

14、string的删除

1)string s; s.erase(); 参数是迭代器!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值