在C++中,char *s,sizeof(s)和strlen(s)有什么不同啊?

供稿:hz-xin.com     日期:2025-01-13
C++中getlen()、strlen()、sizeof()三个函数的区别是什么?

strlen() 这个函数是返回一个字符串中的字符个数,不包括结束符 '\0';
sizeof()这个函数是返回一个对象或类型所占的内存字节数;

getlen()这个函数查了很多资料都没找到,应该是自己写的一个函数吧。
下面具体说一下strlen()和sizeof()函数。

strlen()函数原型:extern unsigned int strlen(char *s);,在Visual C++ 6.0中,原型为size_t strlen( const char *string );,其中size_t实际上是长整型long。
头文件:string.h
功能:计算字符串s的(unsigned int型)长度
说明:返回s的长度,不包括结束符NULL。
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。
char aa[10];cout<<strlen(aa)<<endl; //结果是不定的
char aa[10]={'\0'}; cout<<strlen(aa)<<endl; //结果为0
char aa[10]="jun"; cout<<strlen(aa)<<endl; //结果为3
而sizeof()函数返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen是函数。
sizeof(aa) 返回10
int a[10]; sizeof(a) 返回40

sizeof 求出的是对象所占有空间的字节数
strlen 求出的是字符数组第一个'\0'前的字节数
例如sizeof("abc\0cd")求出的是7
strlen("abc\0cd")求出的是3

string 的length和size没有区别

strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。
sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。

char aa[10];cout<<strlen(aa)<<endl; //结果是不定的   
char aa[10]={'\0'}; cout<<strlen(aa)<<endl; //结果为0   
char aa[10]="jun"; cout<<strlen(aa)<<endl; //结果为3   
而sizeof()函数返回的是变量声明后所占的内存数,不是实际长度。   
sizeof(aa) 返回10   int a[10]; sizeof(a) 返回40

sizeof(s)=sizeof(char*)这个求的是s这个指针的长度结果是4字节,即32位的二进制数
char* s=char s[N],strlen(s)求的是s[N]这个字符串的长度 结果是N

追问char aa[10];cout<<strlen(aa)<<endl; //结果是不定的
为什么啊
回答因为是要遇到\0才判断结束,这里的aa[10]只是声明了一个10位的字符数组,但是还没有赋值,里面还是空的,没有\0的存在,所以不能确定长度,只有赋值之后才能确定长度

定义之后 初始化 很重要啊,最好在定义变量时候都初始化,赋值。

定义一个字符串指针S
指针S的数据类型长度
S所指字符串长度

重赏~~~电脑中的各个文件名
MAK Visual Basil或Microsoft Visual C++工程文件 MAM Microsoft Access宏 MAN UNIX手册页输出 MAP 映射...S 汇编源代码文件 S3I Scream Tracker v3设备 S3M Scream Tracker v3的声音模块文件 SAM Ami专业文档...SIZ Oracle 7配置文件 SKA PGP秘钥 SKL Macromedia导演者资源文件 SL PACT的保存布局扩展名 SLB Auto...

wmp11音乐类型解释
汇编语言包含文件,类似C\/C++中的.H文件.infWindows下的软件安装信息,Windows的标准安装程序根据此文件内的安装信息对软件,驱动程序等进行安装.iniWindows中的...音频压缩文件,曾经非常流行,不过在现在的软件中用的很少了.mifMIDI乐器.mov使用Apple's QuickTime格式的电影文件,在Macintosh中由Sparkle,FastPlayer,Movie...

扩展名PDB是什么程序
MAG 在一些[非法语句]本文件中发现的图形文件格式 C?p$ MAGIC 魔力邮件监视器配置文件 *p}Z{F MAK Visual Basil或Microsoft Visual C++工程文件 b}$ ...SIZ Oracle 7配置文件 \\) SKA PGP秘钥 ) SKL Macromedia导演者资源文件 tD SL PACT的保存布局扩展名 S SLB Autodesk Slide库文件格式 c{O" SLD Auto...

有哪些扩展名
我们经常接触的扩展名有doc(Word文档)、wps(Wps文档)、xls(Excel电子表格)、ppt(Powerpoint演示文稿)、jpg(图片)、txt(纯文本)、rar(Winrar压缩文件)、htm(网页文件)、html(网页文件)等等。

文件有那些格式,代表什么.大哥大姐帮忙了
Visual C++资源文件RFT 可修订的窗体文本(IBM的DCA一部分或文文件内容框架结构一部分)RGB,SGISilicon...SDK Roland S—系列软盘映像SDL Smart Draw库文件SDR Smart Draw绘图文件SDS 原始Midi抽样转储标准文件...SIZ Oracle 7配置文件SKA PGP秘钥SKL Macromedia导演者资源文件SL PACT的保存布局扩展名SLB Autodesk ...

结尾是ism结尾的英文单词,越多越好需要中英对照
擅长: 编程语言 英语翻译 操作系统\/系统故障 软件开发 C\/C++ 其他类似问题 2011-01-13 求de 结尾的英文单词,,越多越好!!! 2 2009-09-21 列举...ostracism [')str()siz()m] n. (古希腊)贝壳放逐法, 放逐, 排斥 solecism ['s)lisiz()m] n. 语法错误, 谬误, 失礼, 违反语法 cynicism [...

问下dl1123dbwb06w.821.0.exe这是什么游戏或则什么文件啊,帮下忙拉...
你就直接删除它吧,第一看名字不是系统文件,但却是执行命令的.exe文件;第二你又不明白是什么,莫名其妙在电脑里出现,万一是病毒文件或捆绑了恶意程序的话,一执行就麻烦事来了。光看文件名是不可能知道是什么东西。

文件用什么软件打开
查看TIF文件图片可以用系统自带的windows图片、画图工具、Photoshop软件。查看方法:1、找到需要打开的TIF文件图片,点击鼠标右键,在弹出的选项中选择“打开方式”。2、在“打开方式”中选择“Photoshop程序”。3、即可在Photoshop中将该图片打开。4、再返回图片位置,在“打开方式”中选择“Windows照片查看器...

电影文件的扩展名有那些
IIF QuickBooks for Windows交换文件 s?f(ILBM 位图图形文件 o IMA WinImage磁盘映像文件 YUa([IMG GEM映像 xC(IMZ WinImage压缩磁盘映像文件 7- INC 汇编语言或动态服务器包含文件 a{9<s!INF 信息文件 #jy4e INI 初始化文件;MWave DSP Synth的"nwsynth.ini" GMS安装;Cravis Ultrasound bank...

什么是文件后缀
文件的后缀名,即文件的扩展名,是操作系统用来标志文件类型的一种机制,是一个类型的元数据。举例:“小说.txt”的文件名中,小说是主文件名,txt为扩展名(文本、外语全称:Text),表示这个文件是一个纯文本文件。一个文件可以有或没有扩展名。对于打开文件操作,没有扩展名的文件需要选择程序去打开...