前言:在前面我们说过,前面的绝大部分内容都是在为了后面真正进入C++这块大门做铺垫,今天我们将正式的步入string类来进一步了解C++的奥妙。
💖 博主CSDN主页:卫卫卫的个人主页 💞
👉 专栏分类:高质量C++学习 👈
💯代码仓库:卫卫周大胖的学习日记💫
💪关注博主和博主一起学习!一起努力!
目录标题
- string类的使用
- string类对象的常见构造
- 构造函数
- string类对象的容量操作
- string类对象的访问及遍历操作
- 迭代器(非常重要)
- string中operator[ ]重载的使用
- string类对象的修改操作
- C++中的string与C语言字符串的区别
- string类中的运算符重载
string类的使用
string类对象的常见构造
- 字符串是表示字符序列的类
- 标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性。
- string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型(关于模板的更多信息,请参阅basic_string)。
- string类是basic_string模板类的一个实例,它使用char来实例化basic_string模板类,并用char_traits
和allocator作为basic_string的默认参数(根于更多的模板信息请basic_string)。
- 注意,这个类独立于所使用的编码来处理字节:如果用来处理多字节或变长字符(如UTF-8)的序列,这个类的所有成员(如长度或大小)以及它的迭代器,将仍然按照字节(而不是实际编码的字符)来操作。
构造函数
1string().默认构造函数,创建一个空字符串。
int main() { string emptyString;// 使用默认构造函数创建空字符串对象 string emptyString1 = "";// 使用空字符串字面值构造函数创建空字符串对象 string StrOutput("hello"); emptyString = StrOutput; emptyString1 = StrOutput; cout string StrOutput = "Hello string";//构建一个对象并赋值 cout string m(10, 'a'); //string类对象中包含10个字符a //myString = "aaaaaaaaaa"; cout string s1("weiweizhoudapang"); string s2(s1, 2, 2);//下标就是从1开始的,指代从s1中第二个字符开始一直往后两个字符都拷贝到s3中 cout // 定义一个字符串变量s并赋值 string s = "Hello World"; // 使用构造函数创建一个新的字符串对象s2,将s作为参数传入 string s2(s); // 输出s和s2的值 cout string str = "hello string"; int len = str.size(); cout string str = "hello string"; int len = str.length();//返回12 cout string str = "hello string"; int cap = str.capacity();//返回实际字符串占用的内存 cout std::string str1 = "Hello"; std::string str2; if (str1.empty()) { std::cout std::cout std::cout std::cout std::string str = "Hello, World!"; std::cout std::string str; std::cout std::string str = "Hello"; std::cout std::string str = "Hello string"; for (int i = 0; i