字符串长度怎么算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串长度怎么算相关的知识,希望对你有一定的参考价值。

参考技术A

长度为从字符串开始,到'\\0'结束,所有字符的个数,不包括'\\0'本身。

C语言的字符串是由字符数组形式保存的,并约定'\\0'(ascii码值为0)作为字符串结束符。

strlen计算的是字符串的长度,单位是“字符”,只能对字符串运算,而且它是函数(不是运算符),计算时,不包含末尾的"\\0";当对字符数组操作时,返回的是数组总存放的字符串的实际长度(也就是\\0之前的),也就是当把数组作为参数传递给strlen时是会退化成char*指针的。

扩展资料:

strlen() 函数用于计算字符串的长度。

算出字符串 "Hello world!" 的长度:

<?php

echo strlen("Hello world!");

?>

以上代码的输出:

12字符串的长度信息常常用在循环或其他函数中,因为那时确定字符串何时结束是很重要的(例如,在循环中,我们需要在字符串中的最后一个字符之后结束循环)。

参考资料来源:百度百科-strlen

MFC BYTE[]怎么算字节数

定义的BYTE[300],但是里面有01,02,05,20,实际字节数应该是4吧,这个4怎么算出来??

BYTE array[300]=01,02,05,20;
这样的定义,实际占用内存就是300,数组是不可变长度的内存占用,当声明后内存堆栈的占用是固定的。
至于4,是因为这样的定义后,默认除了前四个字节,后面的296字节默认补了0,那么按照字符串长度的方式计算,后面0不作为有效长度(虽然占用了内存),通过函数strlen取得的长度就是4个字节。
另外注意,数组的不安全性就在于,没有标准函数可以获取数组的实际占用内存长度,因此必须自己记录并限制内存地址操作,否则很容易越界。
一个BYTE就是一个char,同样是一字节,楼上用sizeof(BYTE)得到的数字,只能是1.
参考技术A 你意思是你定义了一个
BYTE bArray[300];
然后在里面填充了一些数据,想知道实际是多少个字节?

这个应该是不知道的,你要自己用变量记录里面保存了多少个结果,因为这个数组它大小300字节,就算你用它来存1字节,其实它还是占用300字节
参考技术B sizeof(BYTE)

以上是关于字符串长度怎么算的主要内容,如果未能解决你的问题,请参考以下文章

C语言怎么计算字符长度?

C语言怎么计算字符长度?

C语言怎么计算字符长度?

如何在Shell脚本中计算字符串长度

MFC BYTE[]怎么算字节数

字符串长度函数如何计算?从开始到第一个\0