C++ 浅谈 strlen 与 sizeof的区别
2024-10-07 17:32:23
先举个栗子:
字符串数组跟字符串指针,然后分别使用sizeof跟strlen看输出结果。
char strA[] = "2017-7-19";
char *strB = "23333";
cout <<sizeof(a)<<ends<<sizeof(b)<<endl;
以上输出 10 4;
a字符串数组长度为10,因为其包含了结束符'\0';
b字符串指针的长度是4,(32位机子下指针长度都是4,其他类型一致,无论指向多长的字符串)
倘若想测试最后一位是不是,循环到最后一位并且做个判断是不是'\0'即可。
cout <<strlen(a)<<ends<<strlen(b)<<endl; 【注意这里strlen的参数是char的类型】
以上输出 9 5;
strlen实际返回的是字符串的长度,即原本字符串数组中保存的数据长度/字符串指针中保存的数据长度。
最新文章
- HTTP Code
- 监控服务 - Nagios配置文件详解
- JS常用语句
- 看完 《重来(REWORK)》
- linux上安装jdk并添加环境变量
- NC表型参照类
- 乐1/MACBOOK/ N1 Type-C接口新体验
- MyEclipse中新建JSP(Advanced Template)文件时自动生成的
- 判断变量是否存在(python)
- Windows平台Go调用DLL的坑(居然有这么多没听过的名词)
- id和instancetype的异同
- webrtc学习笔记1(建立连接基本流程)
- python 集合去重
- markdown首行缩进
- mac版本idea使用(二)-如何安装PlantUML画时序图、类图
- Cookie 类
- checked选择器实现tab切换
- Linux命令对应的英文全称
- k8s相关文档
- redis集群错误解决:/usr/lib/ruby/gems/1.8/gems/redis-3.0.0/lib/redis/client.rb:79:in `call&#39;: ERR Slot 15495 is already busy (Redis::CommandError)