
C++提供的STL,这个标准库里面包含了容器类,string就是容器类的其中一员,那么string容器有什么特点吗?让小编带你一起来了解一下吧。
目录
string
1. string的定义和初始化
2. string的赋值 *** 作
3. string获取字符的 *** 作
4. string的拼接 *** 作
5. string的查找 *** 作
6. string的替换 *** 作
7. string的比较 *** 作
8. string的子串获取 *** 作
9. string的插入和删除 *** 作
10. string 的reserve预留空间 *** 作
11. string的swap函数和容量、长度获取
12. string判断是否为空串
string
如果你要使用string容器,那么需要添加头文件
#include
1. string的定义和初始化
string ser_str1; // 定义一个空串
string ser_str2(10,'s'); // 定义一个字符串,由10个s组成
string ser_str3(ser_str2); // 使用serven_1来定义字符串
string ser_str4("三贝勒文子"); // 参数为常量的构造函数来定义字符串
运行结果:
2. string的赋值 *** 作-
operator=:C++中string容器重写了operator=,包括了下面三种赋值的方式:
// string& operator=(const char* str); // char*类型字符赋值给当前的字符串
// string& operator=(char c); // 字符赋值给当前字符串
// string& operator=(const string& s); // 字符串s赋值给当前字符串
char* s = "你好";
ser_str1 = s;
cout<<"char*类型字符赋值给当前的字符串:"<
运行结果:
-
assign():该函数是赋值函数:
// string assign(const char* s); // char*类型字符赋值给当前字符串
// string assign(int n, char c); // 把n个字符c赋值给当前字符串
// string assign(const string& s); // 把字符串s赋值给当前字符串
// string assign(const string& s, int nstart, int n); // 将字符串s下标为nstart开始的地方后n个字符赋值给当前字符串
// string assign(const string& s, int n;) // 将字符串s下标为0开始的地方后n个字符赋值给当前字符串
char* s = "你好";
ser_str1.assign(s);
cout<<"char*类型字符赋值给当前的字符串:"<
运行结果:
3. string获取字符的 *** 作-
string获取字符有两种方式,分别是at和operator[],代码如下:
// 通过at取字符
cout<<"字符串的第三个位置的字符:"<
运行结果:
4. string的拼接 *** 作拼接 *** 作有两种方式,分别是operator+=和append,两种的 *** 作方式如下:
operator+=:
// string& operator+=(const string& s);
// string& operator+=(const char* s);
// string& operator+=(const char c);
ser_str1 += "三贝勒文子, ";
cout<
append():
// string& append(const string& s);
// string& append(const char* s);
// string& append(int n, char c); // 在当前字符串结尾添加n个字符c
// string& append(const string& s, int pos, int n);
// string& append(const char* s, int n);
ser_str1.append("你好高吖!");
cout<
运行结果:
5. string的查找 *** 作查找字符或者字符串的方式有正向查找和反向查找,两者示例为:
-
find():正向查找
ser_str1 = "My name is Serven, I come from china, I like writting and Reading. this is My home";
// int find(const string& s, int pos = 0)const; 查找s第一次出现的位置,从pos开始找
// int find(const char* s, int pos = 0)const; 查找s第一次出现的位置,从pos开始找
// int find(const char* s, int pos, int n); 从pos位置查找s的前n个字符第一次出现的位置
// int find(const char c, int pos = 0)const; 查找字符c第一次出现的位置
cout<<"ser_str1"<
运行结果:
-
rfind():反向查找
// int rfind(const string& s, int pos=npos)const; 查找s最后出现的位置,从pos开始找
// int rfind(const char* s, int pos = npos)condt; 查找s最后一次出现的位置,从pos开始查找
// int rfind(const char* s, int pos, int n)const; 从pos查找s的前n个字符最后一次的位置
// int rfind(const char c, int pos)const; 查找字符c最后一次出现的位置
cout<<"倒数第一个My的位置:"<
运行结果:
6. string的替换 *** 作-
replace():
/* string的替换 *** 作 */
ser_str1 = "Hello world!";
// string& replace(int pos, int n, const string& s); 替换从pos开始n个字符为字符串s
ser_str1.replace(6, 6 ,"Serven");
cout<
运行结果:
7. string的比较 *** 作-
compare():compare函数在>时返回 1,<时返回 -1,==时返回 0。比较区分大小写,比较时参考字典顺序,排越前面的越小。大写的A比小写的a小。
//int compare(const string &s) const;//与字符串s比较
//int compare(const char *s) const;//与字符串s比较
ser_str1 = "Hello World";
ser_str2 = "Hello Serven";
cout<<"Hello World和Hello Serven作比较:"<
运行结果:
8. string的子串获取 *** 作-
substr():
ser_str1 = "Hello World";
// string subStr(int pos = 0, int n = npos)const; // 返回由pos开始的n个字符组成的字符串
cout<<"返回从第3个位置开始的三个字符子串:"<
运行结果:
9. string的插入和删除 *** 作-
insert():
-
erase():
/* 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个字符
ser_str1 = "Hello orld";
ser_str1.insert(6,1,'W');
cout<<"在第六个位置插入字符W:"<
运行结果:
10. string 的reserve预留空间 *** 作-
reserve(n):给字符串预留空间
/* 为字符串预留空间 */
string serven_str_4;
cout<<"serven_str_4没有预留空间前的容量:"<
运行结果:
11. string的swap函数和容量、长度获取-
s1.swap(s2):将字符串s1和s2互换;
-
size():获取字符串的长度;
-
capacity():获取字符串的容量;
/* string的长度和容量获取以及swap */
string serven_str_1 = "Hello World";
string serven_str_2 = "Serven";
cout<<"原本的serven_str_1:"<
运行结果:
12. string判断是否为空串-
empty():判断字符串是否为空串,是的话返回1
cout<<"serven_str_3是否为空串:"<
运行结果:
13. string和char*的互换 *** 作
/* string 和 char* 的转换*/
// string转char*
string serven = "helloworld";
const char* serven_1 = serven.c_str(); // 一i的那个要定义为常量指针,因为要保证指针不能指向别的位置了
cout<
运行结果:
关注微信公众号 “三贝勒文子” ,每天学习C++欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)