c++的string库常用函数
2018-09-14 本文已影响0人
professordeng
本片文章介绍 C++ string 的常用函数
1. 创建字符串
string str = "hello world!"; //直接赋值
str += " i am david"; //尾部添加数据
cout<<str<<endl; //输出字符串
cout<<str.length()<<endl; //当前字符串大小
cout<<str.max_size()<<endl; //当前容器大小
cout<<str.empty(); //判断字符串是否为空
2. 查找
字符串查找很常见,下面介绍最常用的一种(有空可以了解一下 KMP 算法)
int find(const string &s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置
这个算法可以判断一个字符串是否在另一个字符串里面,而且返回所在位置。如下
string str = "hello world!"; //直接赋值
str += " i am david"; //尾部添加数据
string str1 = "david"; //子串1
cout<<str.find(str1,0)<<endl; //这里将返回18
string str2 = "amy"; //子串2
cout<<str.find(str2,0)<<endl; //没有这个字串,所以会返回string的最大长度
3. 替换
接上一道题,如何将查找到的 str1 替换成 str2。可以利用下面这个函数。
string &replace(int p0, int n0,const string &s); // 删除从 p0 开始的 n0 个字符,然后在 p0 处插入串 s
利用查找函数找到替换位置,然后进行替换,如下
string str = "hello world!"; // 直接赋值
str += " i am david"; // 尾部添加数据
string str1 = "david"; // 子串 1
string str2 = "mary"; // 字串 2
int start = str.find(str1,0); // 找到插入点
str.replace(start,str1.length(),str2); // 执行替换
cout<<str<<endl; // 输出结果
4. 插入
在指定地点进行插入,或者是字符,或者是字符串,可以利用以下函数
string &insert(int p0,const string &s); 将 s 串插入到主串的 p0 处。
string &insert(int p0,const string &s, int pos, int n); // 在主串的 p0 处插入 s 串 pos 到 n 的部分
例如,在 david 前面插入 amy‘s,如下
string str = "hello world!"; // 直接赋值
str += " i am david"; // 尾部添加数据
string str1 = "david"; // 子串1
string str2 = "amy's "; // 字串2
int start = str.find(str1,0); // 找到插入点
str.insert(start,str2); // 执行插入
cout<<str<<endl; // 输出结果