C++ 字符串 对象
C++ 字符串 :
1.string 类 : C++ 中的字符串是 string 类 对象 ;
2.string 类定义位置 : 该 string 类定义在 iostream 头文件中 , 不必引入另外的头文件 ;
#include <iostream>
C++ 字符串 对象 创建方法
C++ 字符串 对象 创建方法 :
1.直接赋值 : 直接使用 C 字符串赋值 ;
//① 使用字符串赋值 string string_c_plus_1 = " Hello ";
2.构造方法 : 调用 string 构造方法 创建 string 对象 ;
① 传入 string 参数 : string 构造方法可以传入 string 对象 ;
② 传入 C 字符串参数 : string 构造方法也可以传入 一个 C 字符串 ;
//② 调用构造方法 初始化字符串 string string_c_plus_2(string_c_plus_1); string string_c_plus_3(" World ");
3.使用 new 分配内存 : 使用 new 为 String 对象分配一块堆内存空间 , 返回 string * 类型的指针 ;
//③ 使用 new 申请的内存 , 需要使用 delete 释放 string *string_c_plus_4 = new string(" New "); delete string_c_plus_4;
调用该 string* 对象的方法需要使用 -> 进行调用 ;
堆内存使用原则 :
① 使用 new 申请的内存 , 需要使用 delete 释放 ;
② 使用 new [] 申请的数组 , 需要使用 delete[] 释放 ;
③ 使用 malloc 申请的内存 , 需要使用 free 释放 ;
C++ 字符串 对象 输出到控制台
C++ 字符串 对象 输出到控制台 :
1.不能直接使用 cout 输出 : 下面的用法是错误的 ; 使用 cout 不能直接将 string 对象输出 ;
//这种用法是错误的 string string_c_plus_1 = " Hello "; cout << string_c_plus_1 << endl;
2.输出方法 : 需要将 string 对象转成 C 字符串 , 然后再输出 :
//调用 string 对象的 c_str() 方法 , 获取其 C 字符串 , 然后再输出到控制台 string string_c_plus_1 = " Hello "; cout << string_c_plus_2.c_str() << endl;
在 Java 中输出 String 对象 , 默认会调用其 toString 方法 , 但是在 C 中不可以直接使用 ;
C++ 字符串 拼接
C++ 字符串拼接 :
1.使用 “+” 符号拼接 : 这里的加号进行了操作符重载 , 字符串之间相加代表了字符串的拼接操作 ;
//① "+" : 操作符重载 , 重新定义了 加号运算符的行为 , // 这里加号可以实现字符串拼接 , 与 Java 类似 string string_c_plus_5 = string_c_plus_1 + string_c_plus_3;
2.调用 string 对象的 append 方法 : 调用 string 对象的 append() 方法 , 传入要拼接的字符串 ;
//② 调用 string 对象的 append 方法 , 拼接字符串 string string_c_plus_6 = string_c_plus_1.append( string_c_plus_3 );
3.代码示例 :
//C++ 字符串拼接 //① "+" : 操作符重载 , 重新定义了 加号运算符的行为 , 这里加号可以实现字符串拼接 , 与 Java 类似 //② 调用 string 对象的 append 方法 , 拼接字符串 string string_c_plus_5 = string_c_plus_1 + string_c_plus_3; string string_c_plus_6 = string_c_plus_1.append( string_c_plus_3 );
4.运行结果 :
Hello World Hello World
操作符重载 : 重新定义了操作符的作用 , 这里的 “+” 就是重新定义了其作用 , 拼接字符串 ;
C++ 字符串 方法调用 ( 栈内存对象 )
C++ 字符串 方法调用 : 该字符串 ( string ) 对象 在栈内存中 ;
1.获取字符串长度 : 调用 string 对象的 size() 方法 , 即可返回字符串长度 ;
//① 使用字符串赋值 string string_c_plus_1 = " Hello "; //获取 C++ 字符串长度 : 调用 string 对象的 size() 方法 , 获取字符串长度 int string_c_plus_1_size = string_c_plus_1.size();
2.判断字符串是否为空 : 调用 string 对象的 empty() 方法 , 判断字符串是否为空 ;
//① 使用字符串赋值 string string_c_plus_1 = " Hello "; //判断 C++ 字符串是否为空 : 调用 string 对象的 empty() 方法 ; bool string_c_plus_1_empty = string_c_plus_1.empty();
3.代码示例 :
//使用字符串赋值 string string_c_plus_1 = " Hello "; //获取 C++ 字符串长度 : 调用 string 对象的 size() 方法 , 获取字符串长度 int string_c_plus_1_size = string_c_plus_1.size(); cout << "string_c_plus_1_size : " << string_c_plus_1_size << endl; //判断 C++ 字符串是否为空 : 调用 string 对象的 empty() 方法 ; bool string_c_plus_1_empty = string_c_plus_1.empty(); cout << "string_c_plus_1_empty : " << string_c_plus_1_empty << endl;
4.运行结果 :
string_c_plus_1_size : 14 string_c_plus_1_empty : 0
使用 “.” 方式调用栈内存对象的方法 ;