C语言的strlen问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 13:35:21
二级C语言中的strlen函数 返回的长度可包括'\0'
书上说不包括 可是在上机模拟题中 都是当作包括处理的 ?????
http://www.ncre.cn/ncre_new/download/index.html就是在这个网站里下载的模拟题,也是官方的 可是里面的凡是关于STRLEN的都是当作包括'\0'处理的

可以自己做个实验
#include <stdio.h>
#include <string.h>
main()
{
printf("%d %d",sizeof("123456"),strlen("123456"));
}
输出结果为7和6
可见strlen不包括结束符\0,包括结束符的是sizeof
但要注意的是,sizeof用来测量字符串长度只能用在字符串常量,而对于字符串数组则是测量数组被分配的内存空间长度

是不包括'\0'的啊,我用c++ builder 6编译时也是不包括的。
虽然存储时多了'\0',不过计算长度不计算吧。
如果是字符数组的长度就不一样了,先看看你模拟时用得是字符串形式还是字符数组形式吧。

应该不包括.不然sizeof和strlen的区别这种题目就不好出了,呵呵

strlen是STRing LENgth 的缩写, 它是测试字符串长度

的函数,函数的值为字符串中的实际长度(不包括'\0'在

内)。

谭浩强 C 程序设计 149页 (清华大学出版社)

不包括啊 不包括的

可能跟编译系统有关
VC++6.0中不包括'\0'