当前位置: 首页 > news >正文

9.指针和字符串string类型

指针和字符串string类型

  • 1.指针
  • 2.字符串string类型

1.指针

  • C++完全兼容C语言指针,C++多出一个this指针

  • 交换两数

    #include <iostream>using namespace std;void swap(int *a,int *b){int temp;temp = *a;*a = *b;*b = temp;
    }int main()
    {//交换前int a = 50;int b = 60;cout << "交换前的数字" << endl;cout << a << "," << b << endl;//交换后swap(a,b);cout << "交换后的数字" << endl;cout << a << "," << b << endl;return 0;
    }
    

2.字符串string类型

C语言和C++的对比

  • C语言中对字符串的表示通常用指针,新手会面临内存泄漏或者段错误等众多问题
  • 在 C++ 中, string 类是标准库的一部分,用于表示和操作字符串。它是对C语言字符串(以空字符 ‘\0’ 结尾的字符数组)的一个更安全、更方便的封装。 string 类是在 <string>头文件中定义的,并且位于 std 命名空间中

string类的功能和特性

  • 动态大小:与C语言的字符串不同, string 对象可以动态改变大小,这意味着可以在运行时添加或移除字符,而不需要担心分配和释放内存。

  • 安全性:由于 string 管理其自己的内存,因此减少了内存泄漏和缓冲区溢出的风险。

  • 方便的成员函数: string 类提供了各种操作字符串的方法,如 append() (添加)、 insert()(插入)、 erase() (删除)、 substr() (获取子字符串)等。

  • 操作符重载: string 类重载了多个操作符,使得字符串比较、连接和赋值更加直观。例如,可以使用 + 操作符来连接两个字符串,或者使用 == 操作符来比较两个字符串是否相等。

  • 迭代器支持:像其他标准库容器一样, string 类也支持迭代器,可以使用迭代器来遍历字符串中的字符。

  • 与C语言字符串的兼容性: string 类提供了与C语言字符串互操作的功能。例如,可以使用c_str() 方法来获取一个与C语言字符串兼容的、以 null 结尾的字符数组。

  • 简单的 string 类的使用示例

    #include <iostream>
    #include <string>using namespace std;
    int main(){//打印字符串string str = "hello";cout << str << endl;str = str + "Orange";//可以这样写str += "NO.1";//也可以这样写//str代表源字符串:helloOrangeNO.1//substr(5,6)获取一个子字符串//第一个参数:子字符串开始的位置(基于0的索引),从str的第6个字符开始提取//第二个参数:是子字符串的长度,从指定位置开始,提取6个字符//提取的字符为Orangestring GetTest = str.substr(5,6);//获取字符cout << str << endl;cout << GetTest << endl;
    }
    
http://www.lryc.cn/news/472043.html

相关文章:

  • 八,Linux基础环境搭建(CentOS7)- 安装Mysql和Hive
  • 海量数据面试题
  • 基于SSM积分商城管理系统的设计与实现(源码+lw+部署文档+讲解等)
  • MLP预售开启,革新去中心化通信生态:智能手机与AI Agent齐上阵
  • js获取浏览器指纹
  • 乐尚代驾的项目问题
  • uniapp app.onshow 和 onMounted一样用吗
  • 基于Mysql、JavaScript、PHP、ajax开发的MBTI性格测试网站(前端+后端)
  • 【问题解决】连接mysql时报错caching_sha2_password can not load
  • 【瑞吉外卖】-day01
  • 钉钉与金蝶云星空数据集成:提高企业付款申请单处理效率
  • GIT使用list
  • JavaSE:数组深入学习与复习
  • Redis 事务 总结
  • go sdk的安装或者升级
  • mongo实操笔记
  • 前端算法:树(力扣144、94、145、100、104题)
  • 深度学习速通系列:如何使用bert进行超长中文文本命名实体识别
  • 【感知模块】深度神经网络实现运动预测
  • 智能优化算法-蝗虫优化算法(GOA)(附源码)
  • TVM前端研究--Relay
  • STM32外设应用
  • Docker 部署 Jaeger
  • 使用Python和OpenCV实现火焰检测
  • uniapp基础笔记
  • 函数基础,定义与调用。作用域,闭包函数
  • 【Linux网络编程】 --- Linux权限理解
  • Qt/C++ 调用迅雷开放下载引擎(ThunderOpenSDK)下载数据资源
  • 深入详解 Java - Spring MVC
  • Spring Boot技术中小企业设备管理系统设计与实践