字符串数组中,strlen与sizeof的比较

2023-11-14

	char str1[15]="hello";	//用""赋值系统会在字符串结尾自动添'\0'
	printf("strlen_str1 = %ld\n",strlen(str1));
	printf("sizeof_str1 = %ld\n",sizeof(str1));
	//>>>strlen_str1 = 5
	//>>>sizeof_str1 = 15
	//若字符串数组长度给定,strlen遇到到'\0'结束,且不统计'\0',而sizeof统计整个数组长度

	char str2[]="hello";
	printf("strlen_str2 = %ld\n",strlen(str2));
	printf("sizeof_str2 = %ld\n",sizeof(str2));
	//>>>strlen_str2 = 5
	//>>>sizeof_str2 = 6
	//若字符串数组长度未给定,赋值结束后,系统会根据字符串长度,固定字符串数组的长度
	//同样,strlen遇到到'\0'结束,且不统计'\0',而sizeof统计整个数组长度

	char str3[]="你好";
	printf("strlen_str3 = %ld\n",strlen(str3));
	printf("sizeof_str3 = %ld\n",sizeof(str3));
	//>>>strlen_str3 = 6
	//>>>sizeof_str3 = 7
	//原因:与系统所采用的字符编码方式有关
	//如果系统采用的是utf-8,那么strlen("你")=3,即一个汉字占用3个字节。Linux系统默认情况下采用的该种编码方式。
	//如果系统采用的是gb2312,则strlen("你")=2,即一个汉字占用2个字节。windows中文版采用的该种编码方式。

	char str4[15] = {'h','e','l','l','o'};	//''单个赋值不会自动加'\0'
	printf("strlen_str4 = %ld\n",strlen(str4));
	printf("sizeof_str4 = %ld\n",sizeof(str4));
	//>>>strlen_str4 = 5
	//>>>sizeof_str4 = 15

	char str5[] = {'h','e','l','l','o'};
	printf("strlen_str5 = %ld\n",strlen(str5));
	printf("sizeof_str5 = %ld\n",sizeof(str5));
	//>>>strlen_str5 = 10(未知数)		strlen找不到'\0'会一直找下去
	//>>>sizeof_str5 = 5

	char str6[] = {'h','e','l','l','o','\0'};
	printf("strlen_str6 = %ld\n",strlen(str6));
	printf("sizeof_str6 = %ld\n",sizeof(str6));
	//>>>strlen_str6 = 5
	//>>>sizeof_str6 = 6

	char str7[] = {'h','\n','e','l','l','o','\0','a'};
	printf("strlen_str7 = %ld\n",strlen(str7));
	printf("sizeof_str7 = %ld\n",sizeof(str7));
	//>>>strlen_str7 = 6	strlen会统计\n,但不会结束
	//>>>sizeof_str7 = 8


	#if 0
	//C语言中1个汉字占2个字节,但''中只能存1个字节,所以此写法错误
	char str4[15]={'你'};
	printf("strlen_str4 = %ld\n",strlen(str4));
	printf("sizeof_str4 = %ld\n",sizeof(str4));
	#endif

	return 0;
	

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符串数组中,strlen与sizeof的比较 的相关文章

  • 【数据结构】红黑树模拟实现

    一 红黑树底层原理 红黑树的底层可以看作是AVL树的变种 先前我们了解过AVL的模拟实现 avl对整棵树的控制还是非常严格的 因为高度差不能大于2 导致会经常发生旋转 旋转这个过程也会降低效率 所以为了整体的效率衍生出了红黑树 红黑树旋转的
  • 稳压二极管工作原理、重要参数意义和典型电路参数计算

    稳压二极管的工作原理 稳压二极管也叫稳压管 它在电路中一般起到稳定电压的作用 也可以为电路提供基准电压值 稳压二极管使用特殊工艺制造 这种工艺使它在反向击穿时仍然可以长时间稳定工作 不损坏 而工作在反向击穿状态的稳压管只要工作电流保持在一定
  • 电感磁芯公式

    NBA LI

随机推荐

  • [机缘参悟-89]:《本质思考》- 本质思考的7种习惯

    目录 一 精准性思考 精确 表面词语要精确 二 非歧义思考 深度 明确表面词语背后的动机 三 多维度思考 广度 全方面思考 四 反馈式思考 确认 反复确认 五 适应性思考 变化 因环境变化而变化 六 循环式思考 持续改进 逐渐得到问题的本质
  • linux more 下一页_Linux more命令如何使用?

    Linux下的more命令主要用于分屏显示 即内容超过一屏的文件 与cat命令有点区别 下面小编就给大家详细介绍下more命令 有兴趣的话不妨来了解下吧 more会以一页一页的显示方便使用者逐页阅读 而最基本的指令就是按空白键 space
  • git:分支合并

    1 git 分支的合并 merge 假设我们此时需要修复dev分支上的某个bug 此时在dev分支上创建修复分支fix 然后推进fix分支 当前的git仓库如图 注 为了方便演示 dev分支上只有一个test cpp源文件 然后我们在fix
  • 利用Visio绘制数据流图

    http blog sina com cn s blog a3059cda01011meg html 利用Visio 2007来绘制网上书店系统的数据流图 利用Visio 2007创建Gane Sarson数据流图 可以选择 软件和数据库
  • 【满分】【华为OD机试真题2023 JS】简单的自动曝光

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 简单的自动曝光 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 一个图像有n个像素点 存储在一个长度为n的数组img里 每个像素点的取值范围 0 255 的正整数
  • 使用OpenCV库实现的模板轮廓匹配定位功能块

    c include
  • 批处理替换修改文件名

    echo off echo echo title 批量替换文件名中的部分字符串 color 3f echo Note echo 本批处理可批量替换本文件所在文件夹下的所有文件名的相同字符 echo echo echo echo echo e
  • CentOS 8 通过二进制安装 MySQL

    需求 CentOS8下采用二进制安装包的形式安装MySQL 并且指定数据库文件存放的路径地址 步骤如下 在 MySQL下载地址 中下载 MySQL 二进制安装包 注意 在版本选择的时候 版本号在8 0 11及以下包后缀都是 tar gz 但
  • Python中from from __future__ import *的用法

    from future import 参考 https blog csdn net zzc15806 article details 81133045 我们在读代码的时候 总是会看到代码开头会加上from future import 这样的
  • NoClassDefFoundError/ClassNotFoundException 到底从哪引用到了这个类?排查思路

    1 背景 公司内网登录改造升级 使用方需要配合升级 jar 包 本以为很简单的事情 升级版本上线就 OK 了 没想到升级头一个服务 部署到测试环境就有问题 2 表象 访问所有页面报 404 3 排查思路 3 1 排除法 确定是不是升级 ja
  • cmd简单游戏代码_制作一个猜数字的游戏

    十一节假日 我在敲代码 外甥女突然问我 舅舅 你能不能给我编个游戏啊 看着外甥女期盼的眼神 我当然不好拒绝啊 而且如果写一点代码 能让小朋友对编程有个简单的了解 甚至激发她对编程学习的兴趣 那也是极好的啊 话不多说 我立马敲一个猜数字的文字
  • api-ms-win-core-path-l1-1-0.dll丢失怎么解决?

    api ms win core path l1 1 0 dll文件可以帮助用户快速的启动一些相关的应用程序 让应用程序可以正常的使用 但是近期有用户在电脑的使用中 遇到了系统提示提示 api ms win core path l1 1 0
  • Mysql的分布式(XA)真面目

    Mysql XA 一 XA是什么 二 MySQL中XA实现 1 内部XA事务 两阶段提交PC 2 外部XA事务 总结 一 XA是什么 XA 协议本就是为一个分布式事务协议 它规定了 XA PREPARE XA COMMIT XA ROLLB
  • [React] markdown以及markdown-navbar实现方案

    React markdown以及markdown navbar实现方案 1 前言 心血来潮 想在自己的项目中实现 Markdown 文件的渲染 以下是我当前的实现方式以及遇到的一些问题的记录 本人水平很拉 有更好的方法欢迎在下面讨论 2 m
  • C++ Primer阅读笔记--万能引用和引用折叠

    目录 1 万能引用 1 1 万能引用的实现 1 2 万能引用与右值引用的区别 2 引用折叠 1 万能引用 1 1 万能引用的实现 万能引用可以向其传递任何类型的参数 其会自动进行参数类型的推断 万能引用的两种实现如下 基于模板实现 temp
  • 【Ribbon路由规则器】服务筛选,过滤服务基础组件AbstractServerPredicate

    前言 Ribbon在进行Server过滤的时候 用到了一个重要的基础组件 AbstractServerPredicate 它的作用就是在众多Server的列表中通过一定的过滤策略踢除不合格的Server 留下来合格的Server列表 负载均
  • Matlab中值滤波

    medfilt2 是 MATLAB 中的一个函数 用于对二维图像进行中值滤波 中值滤波是一种非线性滤波方法 它将每个像素的值替换为该像素周围邻域内像素的中值 该函数语法如下 B medfilt2 A m n padopt 其中 A 是需要进
  • 三菱指令大全

    一 顺控指令 1 触点指令 00 LD 逻辑操作开始 01 LDI 逻辑非操作开始 02 AND 逻辑乘 03 ANI 逻辑乘非 04 OR 逻辑加 05 ORI 逻辑加非 2 连接指令 06 ANB AND逻辑块与 07 ORB OR逻辑
  • 嵌入式数据库Sqlite3.3.6移植教程

    本文介绍的内容都是基于Fedora10平台的 一 PC机编译安装 请阅读在安装包里的 INSTALL 文件 或者使用PEAR installer with pear install sqlite SQLite已经内置了 你不需要安装任何附加
  • 字符串数组中,strlen与sizeof的比较

    char str1 15 hello 用 赋值系统会在字符串结尾自动添 0 printf strlen str1 ld n strlen str1 printf sizeof str1 ld n sizeof str1 gt gt gt s