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

C++:string并非以0作为结束符,c_str和data的返回却包含结束符0

C语言中使用char数组保存字符串时,是以字符为0或者'\0'作为字符串的结束符标志的。

所以一个char str[10]的数组只能合法的保存9个字符(因为最后还要加一个结束符)。

#include <cstring>
#include <iostream>using namespace std;int main()
{char str[10] ="123456789";int len = strlen(str);cout<<str<<" len:"<<len<<endl;return 0;
}

运行程序输出:

123456789 len:9

C++使用了string对象来保存字符串,string对象并不需要通过这个额外的'\0'作为结束字符

#include <string>
#include <iostream>using namespace std;int main()
{string str ="123456789";cout<<"str:"<<str<<" length:"<<str.length()<<" capacity:"<<str.capacity()<<endl;str.push_back('\0');str.push_back('0');cout<<"str:"<<str<<
http://www.lryc.cn/news/150315.html

相关文章:

  • ChatGPT插件的优缺点
  • 北京985学校,交叉学科考英一数三408
  • ChatGPT 总结前端HTML, JS, Echarts都包含哪些内容
  • 企业架构LNMP学习笔记1
  • 【位运算】leetcode371:两整数之和
  • 【爬虫小知识】如何利用爬虫爬网页——python爬虫
  • 什么是跨域问题 ?Spring MVC 如何解决跨域问题 ?Spring Boot 如何解决跨域问题 ?
  • 线性代数的学习和整理17:向量空间的基,自然基,基变换等(未完成)
  • Java中支持分库分表的框架/组件/中间件简介
  • 7.2 项目2 学生通讯录管理:文本文件增删改查(C 版本)(自顶向下设计+断点调试) (A)
  • excel怎么设置任意选一个单元格纵横竖横都有颜色
  • 期货-股票交易规则
  • Makefile一些语法
  • 0基础可以转行编程行业么
  • 【spark】dataframe慎用limit
  • 基于OpenCV+LPR模型端对端智能车牌识别——深度学习和目标检测算法应用(含Python+Andriod全部工程源码)+CCPD数据集
  • C++学习6
  • bazel使用中存在的问题
  • svn软连接和文件忽略
  • 自动驾驶攻城战,华为小鹏先亮剑
  • 企业供应链数字化怎么做?企业数字化供应链流程落地方式
  • java八股文面试[多线程]——synchronized 和lock的区别
  • 实现一个简单的控制台版用户登陆程序, 程序启动提示用户输入用户名密码. 如果用户名密码出错, 使用自定义异常的方式来处理
  • Java 大厂八股文面试专题-设计模式 工厂方法模式、策略模式、责任链模式
  • Anaconda Prompt输入jupyter lab无反应
  • JavaScript Web APIs - 05 Window对象 、本地存储
  • Ansible学习笔记6
  • Linux挖矿程序清除
  • 使用Git和Github上传代码文件
  • OpenAI发布ChatGPT企业级版本