c,c++,go语言字符串的演进

#include <stdio.h>
#include <string.h>
int main()
{char str[] = {'a','b','c','\0','d','d','d'};printf("string:[%s], len:%d \n", str, strlen(str) );return 0;
}
string:[abc], len:3 

c语言只有数组的概念,数组本身没有长度的概念,需要另外设置一个字段来保证数组长度。而字符串天生就有长度的要求,于是增加了一个字符串结束符,来判断该char数组是否字符串,以及判断长度,结束符之后的内容就被忽略了。字符串的拼接,截取等操作,通过<string.h>提供的接口来实现。

C++增加了类的支持,这样可以把长度作为类的成员变量而存在,.zise()反应了数组的真实长度。

#include <iostream>
#include <string>
#include <cstring>using namespace std;int main ()
{string str1 = "runoob";string str2 = "google";string str3;int  len ;// 连接 str1 和 str2str3 = str1 +'\0'+ str2;cout << "str1 + str2 : "<<str3 <<" "<< str3.c_str() << endl;// 连接后,str3 的总长度len = str3.size();cout << "str3.size() :  " << len <<" " <<strlen(str3.c_str())<< endl;return 0;
}

str1 + str2 : runoobgoogle runoob
str3.size() :  13 6

C++中字符串会将\0当成一个正常字符处理(打印时会当成空格或者不占位置的字符输出)

c_str()接口会将c++的字符串转换成c语言的字符串,遵循c语言字符串处理规则。

golang中的字符串去掉了有争议的'\0'(代码中出现会编译错误),字符串可以表示为[]byte和string,存储上,这两者没多大区别。string中增加了截取,查找等常规操作,string中的字符无法直接修改,每次变动都会引起重新内存分配,方便,但效率较低。

面试官:你能聊聊string和[]byte的转换吗?-腾讯云开发者社区-腾讯云

各种语言的string发展史,可以看到语言从低级向高级发展,使用上越来越方便了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/25988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ISO 19115-3:2023 基本概念的 XML模式实现

前言 ISO(国际标准化组织)是由各国标准化机构(ISO 成员机构)组成的全球性联合会。制定国际标准的工作通常由 ISO 技术委员会完成。对某一技术委员会所关注的主题感兴趣的每个成员机构都有权在该委员会中派代表。与 ISO 联络的国际组织、政府和非政府组织也参与工作。ISO 与…

运营商大模型进化之路:策略分野与AI未来的璀璨展望

运营商大模型的进化路线“分野”与AI大模型的璀璨前景 随着人工智能技术的飞速发展&#xff0c;AI大模型已成为推动科技进步和产业变革的重要力量。在这个浪潮中&#xff0c;运营商作为通信行业的巨头&#xff0c;也纷纷投入大模型的研发与应用&#xff0c;探索出各自独特的进化…

Mid-journey Prompts -core

以“-core”结尾的描述符。这些提示往往会产生强烈的影响&#xff0c;因为它们涵盖了整个风格、动作和美学。 提示词&#xff1a;Dreamcore [主题] Dreamcore 通过尝试使用鲜艳的色彩、奇怪的形状和不合时宜的物体来捕捉做梦的感觉&#xff0c;从而探索超现实。Midjourney 还喜…

性能测试2【搬代码】

1.性能测试脚本完善以及增强 2.jmeter插件安装以及监控使用 3.性能压测场景设置&#xff08;基准、负载、压力、稳定性&#xff09; 4. 无界面压测场景详解 一、性能测试脚本完善以及增强 使用控制器的目的是使我们的脚本更加接近真实的场景 1.逻辑控制器: 【事务控制器】&…

MySQL存储引擎详述:InnoDB为何胜出?

MySQL作为当前最流行的开源关系型数据库之一,其强大的功能和良好的性能使其广泛应用于各种规模的应用系统中。其中,存储引擎的设计理念是MySQL数据库灵活高效的关键所在。 一、什么是存储引擎 存储引擎是MySQL架构的重要组成部分,负责MySQL中数据的存储和提供了视图,存储过程等…

七天进阶elasticsearch[Four]

依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId><version>3.3.0</version></dependency>如果我们定义一个存储库接口来扩展 Spring Data El…

idea鼠标滚轮滚动放大缩小字体

在idea中的【file】->【settings】菜单&#xff0c;弹出settings窗口&#xff0c;点击窗口中的【Editor】->【General】&#xff0c;在右侧窗口中&#xff0c;选中【Change font size with CtrlMouse Wheel in All editors】即可。

「动态规划」如何求粉刷房子的最少花费?

LCR 091. 粉刷房子https://leetcode.cn/problems/JEj789/description/ 假如有一排房子&#xff0c;共n个&#xff0c;每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种&#xff0c;你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然&#xff0c;因为市…

通过 CartPole 游戏详细说明 PPO 优化过程

CartPole 介绍 在一个光滑的轨道上有个推车&#xff0c;杆子垂直微置在推车上&#xff0c;随时有倒的风险。系统每次对推车施加向左或者向右的力&#xff0c;但我们的目标是让杆子保持直立。杆子保持直立的每个时间单位都会获得 1 的奖励。但是当杆子与垂直方向成 15 度以上的…

springboot与flowable(1):介绍、Flowable-ui使用

一、工作流引擎使用场景 工作流在企业管理系统中是高频使用的功能&#xff0c;一个最常见的例子是请假加班申请与审批的过程。事实上&#xff0c;工作流引擎能支持的业务场景远远不止单据审批&#xff0c;几乎所有涉及到业务流转、多人按流程完成工作的场景背后都可以通过工作流…

任务4.8.1 利用Spark SQL实现词频统计

实战&#xff1a;利用Spark SQL实现词频统计 目标 使用Apache Spark的Spark SQL模块&#xff0c;实现一个词频统计程序。 环境准备 本地文件准备 在本地/home目录下创建words.txt文件。 HDFS文件准备 创建HDFS目录/wordcount/input。将words.txt文件上传到HDFS的/wordcount…

在 Visual Studio 2022 中配置 OpenCV

在 Visual Studio 2022 中配置 OpenCV 软件准备系统环境配置VS 2022 环境配置测试 软件准备 Visual Studio 2022 下载链接 OpenCV 下载链接 Visual Studio 的版本与 OpenCV 的 vc 版本需对应好&#xff0c;可以向下兼容&#xff1a; VS 2015 – vc14VS 2017 – vc15VS 2019…

【启明智显芯片应用】Model3C芯片4.3寸拼图机应用方案

数据显示&#xff0c;618前期&#xff0c;早教启智、智能玩具、科学启蒙、数字阅读类产品销量增长迅猛。当下&#xff0c;90后新生代父母对于孩子的科学启蒙教育愈发重视&#xff0c;他们在给孩子选择学习产品时&#xff0c;越来越倾向于选择寓教于乐的益智类产品&#xff0c;而…

PNAS | 工作记忆中大脑节律的因果功能图

摘要 工作记忆是一个涉及大脑中多个功能解剖节点的关键认知过程。尽管有大量与工作记忆结构相关的神经影像学证据&#xff0c;但我们对控制整体表现的关键中枢的理解并不完整。因果解释需要在对特定功能解剖节点进行安全、暂时和可控的神经调节后进行认知测试。随着经颅交流电…

工业机器人远程运维,增强智慧工厂运营管理

1、需求背景 随着工业自动化技术的普及和工业机器人应用的增加&#xff0c;制造业对于生产线稳定性和效率的要求不断提高。然而&#xff0c;传统的现场监控方式存在着地理位置限制、实时监控难度大以及诊断能力有限等问题&#xff0c;迫切需要一种更具灵活性和效率的监控方式。…

【Unity回调函数】创建自己的外部回调函数——以按钮点击为例

引言 在Unity开发过程中&#xff0c;回调函数是一种强大的机制&#xff0c;它允许我们在特定事件发生时执行预定义的代码块。这不仅增加了代码的模块化&#xff0c;还提升了项目的可维护性和扩展性。本文将以一个简单的小案例——按钮点击事件处理——为例&#xff0c;详细介绍…

充电宝哪个牌子好?10款主流款充电宝推荐

步入高速发展的快充时代&#xff0c;一个优质的充电宝已成为我们日常生活中的必备良品。本文将为大家介绍10主流款的充电宝品牌&#xff0c;它们包括西圣PB、品胜、京东京造、京东京造、飞利浦、倍思等知名品牌的系列产品。这些充电宝涵盖了不同的容量和快充协议&#xff0c;能…

redis windos修复版本

遇到的问题: Django的channel插件连接安装在windows上的redis报错: unknown command BZPOPMIN, channels-redis版本和redis不兼容导致.解决方案: 更新Redis版本. 微软官方维护的 Redishttps://github.com/microsoftarchive/redis/releases 2016年后就不更新了, 版本停留在了3.x…

【Vue】构建vuex-cart模块

说明&#xff1a;既然明确数据要存 vuex&#xff0c;建议分模块存&#xff0c;购物车数据存 cart 模块&#xff0c;将来还会有 user 模块&#xff0c;article 模块… 新建 store/modules/cart.js 挂载到 vuex 仓库上 store/cart.js import Vue from vue import Vuex from vu…