字符串长度

c++

C++ strlen(str)、str.length()、str.size()、sizeof(str)都可以求字符串长度。

一. sizeof()和strlen()两者区别:

1)sizeof操作符的结果类型是size_t,该类型保证能容纳实现所建立的最大对象的字节大小。

2)sizeof是运算符,strlen是函数。

3)sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以’’\0’'结尾的。

4)sizeof在编译时期就计算出来,strlen在运行之后才能计算出来。

5)strlen计算字符串的具体长度(只能是字符串),不包括字符串结束符。返回的是字符个数。sizeof计算声明后所占的内存数(字节大小),不是实际长度。

举例:

1)char* ss = “0123456789”;

sizeof(ss)为4,ss是指向字符串常量的字符指针,sizeof 获得的是指针所占的空间,则为4

sizeof(*ss)为1,*ss是第一个char字符,则为1

2)char ss[] = “0123456789”;

sizeof(ss)为11,ss是数组,计算到’\0’位置,因此是(10+1)

sizeof(*ss)为1,*ss是第一个字符

3)char ss[100] = “0123456789”;

sizeof(ss)为100,ss表示在内存中预分配的大小,100*1

strlen(ss)为10,它的内部实现用一个循环计算字符串的长度,直到’\0’为止。

4)int ss[100] = “0123456789”;

sizeof(ss)为400,ss表示在内存中预分配的大小,100*4

strlen(ss)错误,strlen参数只能是char*,且必须是以’\0’结尾

5)char[] a={‘a’,‘b’,‘c’};

sizeof(a)的值应该为3。

char[] b={“abc”};

sizeof(b)的值应该是4。

6)若string str={‘a’,‘b’,‘c’,’\0’,‘X’};

那么sizeof(str)为5,strlen(str)为3。

二. string中的length()和size()

c++中,在获取字符串长度时,size()函数与length()函数作用相同。

例如:string str = “wang”

则,str.length() = 4。

除此之外,size()函数还可以获取vector类型的长度。

例如:vector < int> num(15,2)

则,num.size() = 15。

java

字符串名.length()

数组长度

c++

C++中没有提供 直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?其中一种方法是使 用sizeof(array) / sizeof(array[0]), 在C语言中习惯上在 使用时都把它定义成一个宏,比如#define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));} 。而在C++中则可以使用模板 技术定义一个函数,比如:

template

int getArrayLen(T& array)

{
return (sizeof(array) / sizeof(array[0]));

}

这样对于不同类型的数 组都可以使用这个宏或者这个函数来获取数组的长度了。以下是两个Demo程序,一个C语言的,一个C++的:

P.S:若数组为存储 字符串的字符数组,则所求得的长度还需要减一,即对于宏定义: #define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]) - 1 );} ,对于函数定义:

template

int getArrayLen(T& array)

{
return (sizeof(array) / sizeof(array[0]) - 1);

}

原因为存储字符串的字符数组末尾有一个’\0’字符,需要去掉它。

java

数组名.length

字符串和数组的长度 java c++相关推荐

  1. 【java json基础】字符串转json json转字符串 json数组转换 【java基础知识】【实用】【一看就会】

    原文:[java json基础]字符串转json json转字符串 json数组转换 [java基础知识][实用][一看就会] 读书就是:从薄读厚,再从厚读薄的过程. 文比较长,各讲述如下: 若是新手 ...

  2. ---已搬运--:[0CTF 2016]piapiapia -----代码审计+字符串逃逸+数组绕过长度限制+以及一下小知识点 preg_match()用数组,而且注意if是正确判断,还是错误判断

    目录: 00000.知识点: 1.url传入数组绕过长度限制?? 2.数组的遍历 3.数组绕过正则 一.自己做: 二.学到的&&不足: 四.学习WP 1.学习一个大佬的思路: 2.学习 ...

  3. java数组length_Java数组属性 length属性,表示数组的长度

    java中数组的.length属性 Class A: public void run() { byte[] sendDateBuff=new byte[593]; sen正常来说,java中数组长度一 ...

  4. java String中文字符串分割成数组 中文字符串分割成一定长度的字符串数组

    java String中文字符串分割成一定长度的字符串数组 /*** 几个字一组 变量控制 大于零有意义*/ int num = 6; /*** 待操作的字符串*/ String str = &quo ...

  5. JAVA关于字符串字符数组处理的小题目

    JAVA关于字符串&&字符数组的小题目 第二题:分析以下需求,并用代码实现 1.键盘录入一个大字符串,再录入一个小字符串 2.统计小字符串在大字符串中出现的次数 3.代码运行打印格式: ...

  6. 字符串分隔 -连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。...

    •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组: •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100) 输 ...

  7. java长度为100的数组_产生一个int数组,长度为100,并向其中随机插入1-100,不重复...

    #define RANDOM(X) (rand() % X + 1) int main() { //标志数组 int book[] = {}; int result[] = {}; //默认的随机数种 ...

  8. java字符串拆分成数组_用Java实现JVM第八章《数组和字符串》

    小傅哥 | https://bugstack.cn 沉淀.分享.成长,专注于原创专题案例,以最易学习编程的方式分享知识,让自己和他人都能有所收获.目前已完成的专题有:Netty4.x实战专题案例.用J ...

  9. 【Android NDK 开发】JNI 方法解析 ( 字符串数组参数传递 | 字符串遍历 | 类型强转 | Java 字符串与 C 字符串转换 | 字符串释放 )

    文章目录 I . C/C++ 中的 Java 字符串数组类型 II . 获取字符串数组长度 III . 获取字符串数组元素 IV . 类型强转 ( jobject -> jstring ) V ...

最新文章

  1. python name_python中__name__的使用
  2. python 文件不存在时才能写入,读写模式xt
  3. 配置网络测试环境的批处理
  4. CoreCRM 开发实录——开始之新项目的技术选择
  5. linux查看r的安装路径,在Linux CentOS 6.5版上安装R3.1.1的问题(检查LDFLAGS以获取Fortran库的路径)...
  6. CVPR 2019 Oral | 京东目标检测算法ScratchDet的深入思考
  7. Jquery.Datatables dom表格定位
  8. 21世纪商业运作平台:云计算(Cloud Computing)
  9. 数字媒体播放器行业调研报告 - 市场现状分析与发展前景预测
  10. Linux嵌入式开发_修改机器码
  11. schema约束和引入
  12. ubuntu下安装jre 7
  13. 黑帽SEO常用作弊手法分析
  14. java伪随机数概率_抽奖伪随机数生成器(Java)
  15. PAT——A1008Elevator(模拟)
  16. 互联网奥秘_Excel数据表的奥秘
  17. 教你写递归——递归三部曲
  18. 暴雪和黑客的战争四:暴雪的杀手锏-The Warden
  19. 任务卡_05-数据库_-MySql 高级任务
  20. 5分钟读懂UML类图

热门文章

  1. 全球及中国游戏方向盘行业营销动态及销售渠道研究报告(2022-2027)
  2. C# 开发ModBus的服务器程序 实现ModBus数据总站 搭建自定义的Modbus服务器 同时支持tcp和rtu...
  3. 前端三件套——我看HTML及CSS
  4. 少儿教育和游戏的火花在哪里?
  5. Redis(10)哨兵
  6. 企业微信搭建私域流量增长运营双管齐下
  7. bootstrap-5.3.0 里面A标签去除下划线有几种办法
  8. centos 8 编译安装hyperscan
  9. DB2 Merge 语句的使用
  10. Ubuntu设为桥接模式自动获取ip但无法上网