C++求字符串长度————sizeof()、size()、strlen()以及length()详解
区分sizeof()、size()、strlen()以及length()以及如何使用
一、区分sizeof()和strlen()
首先,sizeof()【操作数所占空间的字节数大小】是一种c中的基本运算符。(是操作符,并不是函数)可以以类型、指针、数组和函数等作为参数。
它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此 sizeof() 不能用来返回动态分配的内存空间的大小。
char str[30];
gets(str); //输入str
cout<<sizeof(str)<<endl;
这里,如果我输入“Hello”,那么输出的结果会是什么呢?5?还是6?
没错,输出的结果是30,因为sizeof() 在该段程序中的作用是计算字符数组str所占空间字节数的大小,而字符数组str在创建时,系统自动给他分配了30个空间字节,所以无论输入什么(前提是不超过字符数组的范围),输出结果都会是30。(这一点也侧面说明了sizeof()其值在编译时即计算好了)
而相比较于sizeof(),strlen() 是一种函数,用于计算字符串的长度,(只能计算字符串),‘\0’作为终止符,返回的长度大小不包括’\0’,并且 strlen 的结果是运行的时候才出来(不是编译期求值)
char str[30];
gets(str);
cout<<strlen(str)<<endl;
这里,我们输入“Hello”,那么输出的结果就会是5,即字符数组str的长度。
- strlen函数求得的字符串长度是从字符串第一个元素到第一个’\0’之间元素的个数
- sizeof求得的结果是存储该字符串的变量占用的空间大小,因而一定会包括’\0’.若’\0’后还有空余的空间,也会包含到结果里面
二、size()函数以及length()函数
C++中,在获取字符串长度时,size()函数与length()函数作用相同。
string str;
cin>>str;
cout<<str.size()<<endl;
cout<<str.length()<<endl;
这里,我们同样还是输入字符串“Hello”,两个函数结果都为5。
总结:
- sizeof() 可以以类型、指针、数组和函数等作为参数,其值在编译时计算,用于获取操作数所占空间的字节数大小。
- strlen()函数其参数只能为char*(字符型指针),所以在计算字符数组(char str[ ])时,一般用strlen()函数(也只能用于计算字符数组了)。
- size()函数以及length()函数都用于计算字符串(string)长度,不能用char*作为参数。除此之外,size()函数还可以获取vector类型的长度。
C++求字符串长度————sizeof()、size()、strlen()以及length()详解相关推荐
- strlen、sizeof与size()求字符串长度的区别
strlen.sizeof与size()求字符串长度的区别 cout<<strlen("123")<<endl; //返回 3 cout<<si ...
- 【C语言】模拟实现库函数 strcpy(复制字符串内容) 与 strlen(求字符串长度)
前言:对于库函数的使用,我们不仅要会使用方法,更要知晓使用原理,而知晓使用原理最好的方法就是模拟相应库函数的使用. 今天我们就来模拟 strcpy(复制字符串内容) 与 strlen(求字符串长度)这 ...
- c/c++中sizeof()、strlen()、length()、size()详解和区别
c/c++中获取字符串长度.有以下函数:size().sizeof() .strlen().str.length(); 一.数组或字符串的长度:sizeof().strlen() 1.sizeof() ...
- c语言中用于获取字符串长度的函数是,C语言中求字符串长度的函数的几种实现方法...
C语言中求字符串长度的函数的几种实现方法 1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) { ass ...
- Bailian2681 求字符串长度【字符串】
求字符串长度 总时间限制: 1000ms 内存限制: 65536kB 描述 求一个长度不大于100的字符串的长度,要求不使用strlen方法,并且使用到字符指针. 输入 输出 字符串的长度. 样例输入 ...
- C语言用指针求字符串长度
#include<stdio.h> //指针求字符串长度 int main() {char ch[] = "bit";int count = 0;/*int sz = ...
- 求字符串长度【三种解题思路】
文章目录 一.递归法 二.指针减指针法 三.计数器法 题目:模拟实现一个strlen函数,也就是求字符串长度的函数. 一.递归法 #include<stdio.h> #include& ...
- 求字符串长度的多种方法
目录 标准简洁快速法 创建临时变量 --计数器的方法 不许创建临时变量 --递归的方法 运用指针运算 --指针减指针的方法 本文涉及知识点:求字符串长度用 strlen ...
- 三种方法求字符串长度
在求字符串长度时,第一时间会想到运用strlen这个函数,但对于初学者来说,除了掌握这个函数之外,还应当自己写函数来实现相似的功能. 接下来我列举了三种方法来求字符串长度,供大家参考: (1)运用st ...
最新文章
- (亲测可行)基于面绘制的MC算法以及基于体绘制的 Ray-casting 实现Dicom图像的三维重建(python实现)
- gitlab备份与还原:配置文件解读、定时备份、云备份
- mysql主从复制思考_Mysql主从复制(拓展博客文章分享及思考)
- HDLBits答案(3)_Verilog模块的例化与调用
- java static调用吗_Java中的static的使用
- CentOS7 修复boot目录
- 重置gitlab管理员密码
- 021.4 IO流——字节、字符桥梁(编码解码)
- java生成docx文件、pdf文件、docx转pdf、docx转图片 pdf转图片工具
- u盘工作表在计算机上打不开,U盘中无法打开的excel的解决办法
- matlab定义struck,Peter Struck
- 如何将Python打包后的exe还原成.py?
- 小红书X千瓜联合发布|小红书2021年4月创作者红人榜
- linux中ext3多重索引的原理,Ext3日志原理
- QT报错:“pure virtual method called; terminate called without an active exception“
- Sqlserver2014远程远程连接
- 【LittleXi】规划兼职工作
- artdialog html4,artdialog_ (dialog4) 显示页面样式的用法
- 十分钟学会memcache,比你想象的要简单
- AE/PR动态模糊插件ReelSmart MotionBlur Pro(RSMB)
热门文章
- 华为低端交换机堆叠配置
- diea设置代码编辑区背景色为豆沙绿
- python两位小数向上取整函数_python3中的函数如何实现小数向上取整
- C/C++取整函数ceil(向上取整)和floor(向下取整)
- c语言库函数中atof函数的功能是,C语言库函数名: atoi、atof
- SoC-点亮led灯
- bzoj3007: 拯救小云公主(二分+并查集)
- 大容量数据传输,原来可以这么玩
- python 修改文件只读,Python脚本去除文件的只读性操作
- php flot,Flot | | PHP信息技术研究中心