- 本质:string是C++风格的字符串,而string本质上是一个类
- string和char*的区别
- char*是一个指针
- string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器
- 特点
- string类内部封装了很多成员方法,例如:查找find,删除delete,替换replace,插入insert
- string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责
- string构造函数
- string(); //创建一个空的字符串,例如:string str;
- string(const char* s); //使用字符串s初始化
- string(const string& str); //使用一个string对象初始化另一个string对象
- string(int n,char c); //使用n个字符c初始化
- string赋值操作
- string& operator=(const char* s)
- string& operator=(const string &s)
- string& operator=(char c)
- string& assign(const char* s)
- string& assign(const char* s,int n) //将s 的前n个字符赋值给该字符串
- string& assign(const string &s)
- string& assign(int n,char c)
- string字符串拼接
- string& operator+=(const char* str)
- string& operator+=(const char c)
- string& operator+=(const string& str)
- string& append(const char* s)
- string& append(const char* s,int n) //把字符串的前n个连接到字符串结尾
- string& append(const string& str)
- string& append(const string& str,int pos,int n) //字符串从pos开始的n个字符连接到字符串结尾
- string查找和替换(查找指定字符串是否存在 / 在指定位置替换字符串)
- int find(const string& str,int pos = 0) const; //查找str第一次出现的位置,从pos开始查找
- int find(const char* s,int pos = 0) const;
- int find(const char* s,int pos,int n) const; //从pos开始查找s的前n个字符第一次位置
- int find(const char c,int pos = 0) const;
- int rfind(const string& str,int pos = npos) const; //查找str最后一次,从pos开始查找
- int rfind(const char* s,int pos = npos) const;
- int rfind(const char* s,int pos,int n) const; //从pos查找s的前n个字符最后一次位置
- string& replace(int pos,int n,const string& str); //替换从pos开始n个字符为字符串str
- string& replace(int pos,int n,const char* s);
- string字符串比较
- 比较方式:按字符串的ascll码进行对比
- = 返回 0
- > 返回 1
- < 返回 -1
- int compare(const string &s) const
- int compare(const char *s) const
- string字符存取
- char& operator[ ] (int n); //通过[ ]方式取字符
- char& at (int n); //通过at方法获取字符
- 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;int n=npos) const; //返回由pos开始的n个字符组成的字符串
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s = "lwj19983411603@163.com";
int pos = s.find('@',0);
string s1 = s.substr(0, pos);
cout << s1 << endl;
return 0;
}