C语⾔中计算字符串长度的函数
1. strlen函数求得的字符串长度是从字符串第⼀个元素到第⼀个'\0'之间元素的个数(如果字符串中间有'\0',则结果不是整个字符串的长度),同时不包括该'\0'
2. sizeof求得的结果是存储该字符串的变量占⽤的空间⼤⼩,因⽽⼀定会包括'\0'.若'\0'后还有空余的空间,也会包含到结果⾥⾯
解释(与2种求值⽅式的实现原理有关):
1. strlen()的⼀种实现就是遍历字符串,遇到'\0'就终⽌,因⽽返回的结果是第⼀个'\0'前字符元素的个数
2. sizeof 常⽤来求变量占⽤内存空间的⼤⼩,因⽽它返回的是存储字符串的变量所占⽤的内存空间⼤⼩,⽤来求字符串的长度,只在特定情况下可⾏,即字符数组刚好被⼀个字符串占满。c语言如何创建字符串数组
在C语⾔中,与strlen函数不同的是,sizeof不是⼀个函数,⽽是判断数据类型或者表达式长度符的关键字,也可以说是C/C++中的⼀个操作符(operator),其作⽤就是返回⼀个对象或者类型所占的内存字节数。
注意:字节数的计算在程序编译时进⾏,⽽不是在程序执⾏的过程中才计算出来!
数组的sizeof值等于数组所占⽤的内存字节数,如:
char a1[] = "abc";
int a2[3];
sizeof( a1 ); // 结果为4,字符末尾还存在⼀个NULL终⽌符
sizeof( a2 ); // 结果为3*4=12(依赖于int)
那么如何求数组中元素的个数呢?(以下两种⽅式是等价的)
int c1= sizeof (a1)/ sizeof ( char ); //总长度/单个元素的长度 char型
int c2= sizeof (a2)/ sizeof (a2[0]); //总长度/第⼀个元素的长度 int型
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论