栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++的STL容器 string

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++的STL容器 string

string基本概念

本质:

  • string是C++风格的字符串,而string本质上是一个类

string和char * 区别:

  • char * 是一个指针

  • string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。

  • string提供了从string转化为char*的函数成员函数,假设有一个string类的对象s,要将其转换为char *,只需调用s.c_str(),其返回值就是对应的char *指针;这样可以利用char *指针来使用C的接口函数。

特点:

string 类内部封装了很多成员方法

例如:查找find,拷贝copy,删除delete 替换replace,插入insert,获取大小等等

string管理char*所分配的内存,不用担心赋值越界和取值越界等,由类内部进行负责

string的大小函数:

s.size();//获取字符串s的大小

s.length();//返回字符串s的字符数

s.max_size();//当前系统环境剩下的内存最多能容纳多少字符!!string是可变长度!!自动增长!

s.capacity();//当前的string对象s的容量,它的值总是会比size()大1个或者多个,为了避免多次分配空间,系统会为每一个string对象预留一点空间

string的迭代器:

定义string类对象时,系统内部自动生成两个指针,一个指针指向第一个有效字符(begin),一个指针指向最后一个有效字符的下一个空间('即')(end),区间是左闭右开,可以通过string类的begin方法与end方法来获得这两个指针。

迭代器类型关键字:iterator

说明迭代器变量时需要声明类型,否则该指针会因为不知道该指针的步长而导致偏移错误。

利用迭代器遍历整个string对象

string::iterator it

for(it=s.begin();it!=s.end();it++)  cout<<*it<

string构造函数

构造函数原型:

  • string(); //创建一个空的字符串 例如: string str; string(const char* s); //使用字符串s初始化

  • string(const string& str); //使用一个string对象初始化另一个string对象

  • string(int n, char c); //使用n个字符c初始化

string赋值操作

功能描述:

  • 给string字符串进行赋值

赋值的函数原型:【运算符重载】

  • string& operator=(const char* s); //char*类型字符串 赋值给当前的字符串

  • string& operator=(const string &s); //把字符串s赋给当前的字符串

  • string& operator=(char c); //字符赋值给当前的字符串

  • string& assign(const char *s); //把字符串s赋给当前的字符串

  • string& assign(const char *s, int n); //把字符串s的前n个字符赋给当前的字符串

  • string& assign(const string &s); //把字符串s赋给当前字符串

  • string& assign(int n, char c); //用n个字符c赋给当前字符

string字符串拼接

功能描述:

  • 实现在字符串末尾拼接字符串

函数原型:

  • string& operator+=(const char* str); //重载+=操作符

  • string& operator+=(const char c); //重载+=操作符

  • string& operator+=(const string& str); //重载+=操作符

  • string& append(const char *s); //把字符串s连接到当前字符串结尾

  • string& append(const char *s, int n); //把字符串s的前n个字符连接到当前字符串结尾

  • string& append(const string &s); //同operator+=(const string& str)

  • string& append(const string &s, int pos, int n);//字符串s中从pos开始的n个字符连接到字符串结尾

string查找和替换

功能描述:

  • 查找:查找指定字符串是否存在

  • 替换:在指定的位置替换字符串

函数原型:

  • int find(const string& str, int pos = 0) const; //查找str第一次出现位置,从pos开始查找

  • int find(const char* s, int pos = 0) const; //查找s第一次出现位置,从pos开始查找

  • int find(const char* s, int pos, int n) const; //从pos位置查找s的前n个字符第一次位置

  • int find(const char c, int pos = 0) const; //查找字符c第一次出现位置

  • int rfind(const string& str, int pos = npos) const; //查找str最后一次位置,从pos开始查找

  • int rfind(const char* s, int pos = npos) const; //查找s最后一次出现位置,从pos开始查找

  • int rfind(const char* s, int pos, int n) const; //从pos查找s的前n个字符最后一次位置

  • int rfind(const char c, int pos = 0) const; //查找字符c最后一次出现位置

  • string& replace(int pos, int n, const string& str); //替换从pos开始n个字符为字符串str

  • string& replace(int pos, int n,const char* s); //替换从pos开始的n个字符为字符串s

string字符串比较

功能描述:

  • 字符串之间的比较

比较方式:

  • 字符串比较是按字符的ASCII码进行对比

= 返回 0

> 返回 1

< 返回 -1

函数原型:

  • int compare(const string &s) const; //与字符串s比较

  • int compare(const char *s) const; //与字符串s比较

string字符存取

string中单个字符存取方式有两种

  • char& operator[](int n); //通过[]方式取字符 ,[ ]运算符不会检查越界访问错误

  • char& at(int n); //通过at方法获取字符,越界访问报产生异常,更安全

string插入和删除

功能描述:

  • 对string字符串进行插入和删除字符操作

函数原型:

  • string& insert(int pos, const char* s); //插入字符串

  • string& insert(int pos, const string& str); //插入字符串

  • string& insert(int pos, int n, char c); //在指定位置插入n个字符c

  • string& erase(int pos, int n = npos); //删除从Pos开始的n个字符

string子串

功能描述:

  • 从字符串中获取想要的子串

函数原型:

  • string substr(int pos = 0, int n = npos) const; //返回由pos开始的n个字符组成的字符串

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1038568.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号