C++之string和char的使用及区别
一、概念Char在C中char是定义一个字符存储的是一个字符占一个字节,如’a’C中char是字符类型是一种基本数据类型Stringstring是一个模板类实例化的是对象它的内部是封装了const char*类型是一个常量指针指向可以改变但是指向的值不能改变。字符串字符串是使用’\0’终止的一维字符数组字符串的长度为字符个数加1’\0’也占一个长度。在C中字符串有两种一种是字符串char[]即C风格的字符串一种是封装好的字符串类String。二、操作函数strcpy(s1,s2) 复制字符串s2到s1s2复制到了最前面strcat(s1,s2) 连接字符串s2到字符串s1的末尾strlen(s1) 返回字符串s1的长度strcmp(s1,s2) 比较字符串的大小若s1s2返回0若s1 s2 返回正数若s1 s2返回负数strchr(s1,ch) 返回一个指针指向s1中字符ch第一次出现的位置strstr(s1,s2) 返回一个指针指向s1中字符串s2第一次出现的位置三、例子1、字符串定义例子12chargreet[] hello;//这两行语句等价chargreet[6] {h,e,l,l,o,\0};2、定义string及一些基本操作123456string s1 hello;string s2 world;string s3;s3 s1;//复制s3 s1 s2;//连接两个字符串intlen s3.size();//获取字符串的长度3、string中的每一个字符使用单引号是char类型1234567string s hell0;charch s[0];//hcharchabc;coutch;//打印c//只打印一个c为什么只打印一个c//abc是一个字符串赋值给一个字符时会取字符串中最低的位数赋值。4、字符串输出12345string a;printf(%s,a);//输出乱码对于string这类,要用一下加.c_str()的方式这个函数是返回字符串string的首地址因为%s要的是char*,但是string只是字符串要通过函数名来返回其首地址。string a;printf(%s,a.c_str());四、Char和string异同在c中C风格的字符串和String类的比较可以看下面这张图char是一个字符型指针可以指向一个字符数组与string不太相同的是字符数组存储的字符串必须以’\0’结尾代表结束符号而string并不一定以’\0’结束。string的内存管理是由系统处理的除非内存池用完否则基本上不会出现什么内存问题。而char的内存需要自己手动管理了很容易出现内存问题。五、char*和string的互相转化如果要将string直接转换为const char*类型可以使用两个函数。1、c_str()12string sabcd;constchar*chs.c_str();c_str()函数返回一个指向正规C字符串的指针内容与string相同因为C本身没有string类。但是上面这种用法很不安全因为ch最后指向的内容是垃圾值s对象被析构了。而且c_str()返回的是一个临时指针不能对其进行操作。2、strcpy()通过strcpy函数来进行转换是安全的123charch[20];string sabcd;strcpy(ch,s.c_str());3、data()12string sabcd;constchar*chs.data();那c_str()和data()有什么区别呢c_str()会在数据的末尾添加’\0’结束符多数用于使用字符串场合。而data()函数不会添加’\0’结束符。4、如果要转换为char而非const char类型12345string sabcd;char*ch;ch(char*)malloc((s.length())*sizeof(char));s.copy(ch,s.length(),0);//把当前串中以0开始的s.length()个字符拷贝到以ch为起始位置的字符数组中返回实际拷贝的数目coutch;5、通过str[i]的方式取值的类型123string s abcd;cout typeid(s[1]).name() endl;//char我测试输出 c.六、总结以上为个人经验希望能给大家一个参考

相关新闻

C++ class传值和传引用的详细介绍

C++ class传值和传引用的详细介绍

在 C 中,class(类对象)的传值和传引用是两种截然不同的参数传递方式,它们在性能、内存管理和行为上有着本质的区别。简单来说:传值是“复制一份”,传引用是“取个别名”。以下是详细的对比分析:…

2026/10/20 3:27:00 阅读更多 →
恋活HF Patch补丁怎么装?200+插件一键解锁汉化、去码与场景创作

恋活HF Patch补丁怎么装?200+插件一键解锁汉化、去码与场景创作

恋活HF Patch补丁怎么装?200插件一键解锁汉化、去码与场景创作 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch 你是不是也遇到过&…

2026/10/20 12:20:51 阅读更多 →
C++引用概念及用法全解

C++引用概念及用法全解

一、什么是引用&#xff1f;引用是C中的一种语法特性&#xff0c;可以理解为变量的别名。引用本身不占用独立的内存空间&#xff0c;它和被引用的变量共享同一块内存。引用的基本用法123456789101112int main() {int a 10;int& ra a; // ra是a的别名a 10;cout <<…

2026/10/16 8:34:24 阅读更多 →

最新新闻

STM32F4实战:EC20 TCP透传模式与AT指令初始化流程详解

STM32F4实战:EC20 TCP透传模式与AT指令初始化流程详解

简介&#xff1a;针对EC20模块在STM32F4系列微控制器上实现TCP透传通信的场景&#xff0c;这份压缩包提供了一套完整的Keil工程源码&#xff0c;适合物联网开发者、嵌入式工程师以及学习STM32通信技术的读者参考。压缩包内共有174个文件&#xff0c;整体大小约4.06MB&#xff0…

2026/10/20 12:22:13 阅读更多 →
运维的“网络眼睛”:AnaTraf免费版流量分析实战指南

运维的“网络眼睛”:AnaTraf免费版流量分析实战指南

运维这行干久了都有一个共同痛感&#xff1a;网络是最难“看见”的。机器慢可以看 CPU&#xff0c;数据库慢可以看慢日志&#xff0c;唯独网络慢&#xff0c;连像样的仪表盘都没有。业务一句“很慢”&#xff0c;剩下全靠 ping 和猜。后来团队里开始用 AnaTraf 做网络流量分析&…

2026/10/20 12:22:13 阅读更多 →
166倍延迟优化拆解:大模型推理的KV Cache、投机解码与工程实践

166倍延迟优化拆解:大模型推理的KV Cache、投机解码与工程实践

从166倍说起&#xff1a;大模型推理延迟优化的完整拆解大模型推理延迟优化166倍这个话题&#xff0c;最近在几个技术社群里刷了屏。消息源是某大型金融科技公司的技术分享&#xff0c;核心不是让模型变得更“聪明”&#xff0c;而是让同一个模型吐字更快、更省显存、扛住更高的…

2026/10/20 12:22:13 阅读更多 →
AI算力涨价怎么办?成本控制与GPU优化全攻略

AI算力涨价怎么办?成本控制与GPU优化全攻略

最近圈子里聊得最多的词&#xff0c;就是“AI算力涨价”。前一阵几家头部云厂商已经陆续调过价&#xff0c;最近又有一家重要的云服务商宣布从本月初开始上调AI算力相关产品价格。消息一出&#xff0c;很多朋友都在问&#xff1a;以后跑模型、做Demo、搞副业项目&#xff0c;是…

2026/10/20 12:22:13 阅读更多 →
AnaTraf免费版:基于NetFlow/sFlow的网络流量分析实战指南

AnaTraf免费版:基于NetFlow/sFlow的网络流量分析实战指南

白天刚处理完一个现场&#xff1a;客户办公网下午卡成PPT&#xff0c;交换机的CPU、内存、接口流量全是绿的&#xff0c;可用户体验就是不行。后来靠一套流量分析系统翻了几万个会话&#xff0c;五分钟后定位到某个内网IP正对着外部视频站狂拉流。这个场景我经历过太多次&#…

2026/10/20 12:22:12 阅读更多 →
Unity WebGL 音频加载实战:从网络请求到播放的完整链路

Unity WebGL 音频加载实战:从网络请求到播放的完整链路

1. 为什么 Web 端加载音频和编辑器里完全是两码事如果你在 Unity 编辑器里写过AudioClip加载&#xff0c;大概率会觉得这事没什么难度&#xff1a;Resources.Load<AudioClip>或者挂个AudioSource引用&#xff0c;点运行就能出声。但一旦把项目构建成 WebGL 版本丢到浏览器…

2026/10/20 12:21:12 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →