c++ string构造函数和assign函数
c++ string构造函数和assign函数
#include <iostream>
#include <stdlib.h>
#include <string>
#include <string.h>int main()
{char buff[10] = {'a','b','c','d','e','f','g','h','i','\0'};std::string str1;str1.assign(&buff[0],0,10);int length = str1.length();int len = strlen(str1.c_str());std::cout<<"test1: length="<<length<<",len="<<len<<std::endl;std::string str2 = std::string((char*)&buff[0],10);length = str2.length();len = strlen(str2.c_str());std::cout<<"test2: length="<<length<<",len="<<len<<std::endl;std::string str3 = str2;length = str3.length();len = strlen(str3.c_str());std::cout<<"test3: length="<<length<<",len="<<len<<std::endl;std::string str4;str4.assign(str3.c_str(),strlen(str3.c_str()));length = str4.length();len = strlen(str4.c_str());std::cout<<"test4: length="<<length<<",len="<<len<<std::endl;return 0;
}
[banting@localhost test]$ vim test.cpp
[banting@localhost test]$ g++ -g test.cpp -o test
[banting@localhost test]$ ./test
test1: length=9,len=9
test2: length=10,len=9
test3: length=10,len=9
test4: length=9,len=9
[banting@localhost test]$
结论:
为什么上述构造函数和assign函数,不同赋值,通过C++ string的成员函函数length()得到结果不一样?
因为不同函数操作,对length长度计算方式不一样 ,兼容C的接口,字符串结束符’\0’不计入长度。
参考文献
https://cplusplus.com/reference/string/string/string/
https://cplusplus.com/reference/string/string/assign/
相关文章:
c++ string构造函数和assign函数
c string构造函数和assign函数 #include <iostream> #include <stdlib.h> #include <string> #include <string.h>int main() {char buff[10] {a,b,c,d,e,f,g,h,i,\0};std::string str1;str1.assign(&buff[0],0,10);int length str1.length();i…...
学习threejs,使用EffectComposer后期处理组合器(采用RenderPass、GlitchPass渲染通道)
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.EffectComposer 后期…...
物联网通信协议——TCP与MQTT的对比
在物联网通信中,MQTT和TCP的实现方式和原理完全不同,因为两者属于协议栈的不同层级,解决的问题也不同。以下从协议层级、工作机制和典型场景三个角度详细解释: 1. 协议层级与定位 特性TCPMQTT协议层级传输层(第4层&am…...
docker部署springboot(eureka server)项目
打jar包 使用maven: <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>17</source><target>17&…...
第 7 期:DDPM 采样提速方案:从 DDPM 到 DDIM
本期关键词:采样加速、DDIM 推导、可控性提升、伪逆过程、代码实战 前情回顾:DDPM 的采样瓶颈 在前几期中,我们构建了一个完整的 DDPM 生成流程。但是你可能已经发现: 生成一张图像太慢了!!! 原因是: DDPM 要在 T 个时间步中一步步地去噪,从 x_T → x_0。而通常 T 至…...
1panel第三方应用商店(本地商店)配置和使用
文章目录 引言资源网站实战操作说明 引言 1Panel 提供了一个应用提交开发环境,开发者可以通过提交应用的方式将自己的应用推送到 1Panel 的应用商店中,供其他用户使用。由此衍生了一种本地应用商店的概念,用户可以自行编写应用配置并上传到自…...
Docker Image export and load and tag
# 在国外服务器保存Docker镜像 docker save myimage > myimage.tar # 将tar文件传输到国内服务器 scp myimage.tar root192.0.2.0:/home # 在国内服务器加载Docker镜像 cd /home docker load < myimage.tar # 查看镜像 docker images #docker 镜像名 tag 为none 的解决方…...
七牛使用任务工作流对音频进行转码
最近工作中有对音频转码的需求,比如 iOS 设备中对 ogg 格式的语音支持力度不够,那么可以讲ogg转码成mp3格式,下面来介绍一下,如果通过七牛,后端自行转码,不需要前端做任何事情。 假设我们存在一个音频的 urlÿ…...
Excel提取图片并自动上传到文件服务器(OOS),获取文件链接
Excel提取图片并自动上传到接口 在实际项目中,我们可能经常会遇到需要批量从Excel文件(.xlsx)中提取图片并上传到特定接口的场景。今天,我就详细介绍一下如何使用Python实现这一功能,本文会手把手教你搭建一个完整的解…...
基于springBoot+vue的PC 端学习系统(源码+lw+部署文档+讲解),源码可白嫖!
摘要 随着我国经济的高速发展与人们生活水平的日益提高,人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下,人们更趋向于足不出户解决生活上的问题,线上管理系统展现了其蓬勃生命力和广阔的前景。与此同时,在疫…...
JVM对象创建全过程
JVM对象创建全过程深度解析 1. 对象创建的整体流程 JVM创建对象的过程可以分为7个关键步骤,从类检查到内存分配,再到对象初始化: 类加载检查 → 内存分配 → 内存空间初始化 → 对象头设置 → 构造函数执行 → 栈帧引用建立 → 对象使用2.…...
Spring Boot 核心注解全解:@SpringBootApplication背后的三剑客
大家好呀!👋 今天我们要聊一个超级重要的Spring Boot话题 - 那个神奇的主类注解SpringBootApplication!很多小伙伴可能每天都在用Spring Boot开发项目,但你真的了解这个注解背后的秘密吗?🤔 别担心&#x…...
【Python爬虫基础篇】--1.基础概念
目录 1.爬虫--定义 2.爬虫--组成 3.爬虫--URL 1.爬虫--定义 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。随着网络的迅速发展,万维网成为大量信息的载体…...
CSS进度条带斑马纹动画(有效果图)
效果图 .wxml <view class"tb"><view class"tb-line" style"transform:translateX({{w%}})" /> </view> <button bind:tap"updateLine">增加进度</button>.js Page({data: {w:0,},updateLine(){this.…...
文件二进制读写和文本读写以及编码解码
假如是utf8编码,windows系统 写:往键盘中写的字符会被utf8编码成字节写入文件。假如是文本写,\n会被替换为\r\n写入,结尾会加文件结束符EOF。假如是二进制写,\n就是\n,文件结尾也不会加什么EOF 读ÿ…...
HarmonyOS:使用Refresh组件实现页面下拉刷新上拉加载更多
一、前言 可以进行页面下拉操作并显示刷新动效的容器组件。 说明 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。该组件从API Version 12开始支持与垂直滚动的Swiper和Web的联动。当Swiper设置loop属性为true时&…...
获取印度股票市场列表、查询IPO信息以及通过WebSocket实时接收数据
为了对接印度股票市场,获取市场列表、查询IPO信息、查看涨跌排行榜以及通过WebSocket实时接收数据等步骤。 1. 获取市场列表 首先,您需要获取支持的市场列表,这有助于了解哪些市场可以交易或监控。 请求方法:GETURL:…...
【C++深入系列】:模版详解(上)
🔥 本文专栏:c 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 你不需要很厉害才能开始,但你需要开始才能很厉害。 ★★★ 本文前置知识: 类和对象(上) …...
leetcode刷题日记——同构字符串
[ 题目描述 ]: [ 思路 ]: 题目要求判断 s 和 t 是否为同构字符串,即 s 中每个字符与 t 中对应位置的字符形成一个映射关系,且只能是一对一映射ASCII(American Standard Code for Information Interchange)…...
HTTP/1.1 队头堵塞问题
文章目录 一、队头堵塞1、非管线化2、管线化 二、如何解决? 一、队头堵塞 1、非管线化 如图,http 请求必须等到上一个请求响应后才能发送,后面的以此类推,由此可以看出,在一个 tcp 通道中,如果某个 http 请…...
【Quest开发】在虚拟世界设置具有遮挡关系的透视窗口
软件:Unity 2022.3.51f1c1、vscode、Meta XR All in One SDK V72 硬件:Meta Quest3 仅针对urp管线 参考了YY老师这篇,可以先看他的再看这个可能更好理解一些:Unity Meta Quest MR 开发(七):使…...
Qt界面卡住变慢的解决方法
本质原因: 当Qt界面出现卡顿或无响应时,通常是因为主线程(GUI线程)被耗时操作阻塞。 完全忘了。。。 Qt Creater解决方法 1. 定位耗时操作 目标:找到阻塞主线程的代码段。 方法: 使用QElapsedTimer测量代码执行时间…...
常用 Git 命令详解
Git 是一个强大的版本控制工具,广泛用于软件开发和团队协作中。掌握 Git 命令可以帮助开发者更高效地管理代码版本和项目进度。本文将介绍一些常用的 Git 命令,并提供示例以帮助你更好地理解和应用这些命令。 目录 常用命令 git clonegit stashgit pul…...
java导出word含表格并且带图片
背景 我们需要通过 Java 动态导出 Word 文档,基于预定义的 模板文件(如 .docx 格式)。模板中包含 表格,程序需要完成以下操作: 替换模板中的文本(如占位符 ${设备类型} 等)。 替换模板中的图…...
基于CNN卷积神经网络和GEI步态能量提取的视频人物步态识别算法matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 GEI步态能量提取 4.2 CNN卷积神经网络原理 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2024b/matlab2022a 3.部分核心程序 &…...
【Pandas】pandas DataFrame isin
Pandas2.2 DataFrame Indexing, iteration 方法描述DataFrame.head([n])用于返回 DataFrame 的前几行DataFrame.at快速访问和修改 DataFrame 中单个值的方法DataFrame.iat快速访问和修改 DataFrame 中单个值的方法DataFrame.loc用于基于标签(行标签和列标签&#…...
算法思想之链表
欢迎拜访:雾里看山-CSDN博客 本篇主题:算法思想之链表 发布时间:2025.4.18 隶属专栏:算法 目录 算法介绍常用技巧 例题两数相加题目链接题目描述算法思路代码实现 两两交换链表中的节点题目链接题目描述算法思路代码实现 重排链表…...
Oceanbase单机版上手示例
本月初Oceanbase单机版发布,作为一个以分布式起家的数据库,原来一个集群动辄小十台机器,多着十几台几十台甚至更多,Oceanbase单机版的发布确实大大降低了硬件部署的门槛。 1.下载安装介质 https://www.oceanbase.com/softwarece…...
架构师面试(三十二):注册中心数据结构
问题 提到【注册中心】,我们对它的基本功能,肯定可以顺手拈来,比如:【服务注册】【服务发现】【健康检查】【变更通知】等。 透过这些基本功能,一个普适的注册中心的数据结构应该如何设计呢? 可以结合着…...
《软件设计师》复习笔记(11.5)——测试原则、阶段、测试用例设计、调试
目录 1. 测试基础概念 2. 测试方法分类 3. 测试阶段 真题示例: 题目1 题目2 题目3 4. 测试策略 5. 测试用例设计 真题示例: 6. 调试与度量 真题示例: 1. 测试基础概念 定义:系统测试是为发现错误而执行程序的过程&…...
