关于strlen

如题所述

第1个回答  2019-12-13
1."abcde"长度为5,但最后还有个字符串结束符,因此char
a[5]是放不下的,应该用char
a[6]
=
"abcde";char
a[5]="abcde";会导致a的每个元素都不是结束符,紧接a之后的内存区域又不被初始化(C中初始化列表超过数组大小的行为是未定义行为,这里Dev-C++显然没有因为初始化而填充不在a中的空间;C++则会在此产生编译错误),而strlen(a)是根据从(char*)a开始第一个找到字符串结束符的位置来判断的,所以结果不确定(取决于a后面的内存状态,但这个程序没有用到,所以这些值是不确定的,从而结束符的位置也不确定)。这里在a之后两个字节处找到了结束符,结果才是7。
LS错误,sizeof(a)才(在编译期静态地)计算a所占空间的大小。
2.答案是纯粹运气。因为C程序不检查数组越界访问,puts和gets不管输入/输出的长度,自然不一定会出问题。这样后果仍然是不确定的——可能换一个环境或换一台机器再运行就崩溃了,原因是非法的越界内存访问被操作系统捕获,强制程序中止。
====
[原创回答团]

在c语言中strlen是什么意思?
在C语言中,strlen是一个函数,用于计算字符串的长度。以下是关于strlen的 1. strlen函数的基本含义:strlen是“string length”的缩写,即字符串长度的意思。在C语言中,strlen是一个标准库函数,用于计算字符串的长度。它返回的是字符串中字符的数量,不包括字符串末尾的null字符。2. strlen...

strlen和sizeof有什么区别?
关于strlen和sizeof的区别解析 首先,我们要明确这两个概念在C语言中的不同定位。strlen是函数,它在运行时动态计算字符数组或字符串的长度,参数必须是字符型指针。当数组名作为参数时,数组会转化为指针。其功能是遍历字符串直到遇到NULL字符,返回长度(不包括NULL)。相比之下,sizeof是一个运算符,它...

关于c 中求字符串长度的函数strlen的小问题
在编程中,`strlen`是用于计算字符串长度的函数。该函数接受一个字符指针作为参数,并持续执行直到遇到空格或其他特定字符停止。例如,`strlen`在遇到数组c[2][3]中的元素时会返回3,因为数组中的元素数量为3。`sizeof`函数则是用来计算系统分配给数组的字节数量。这是两个不同的概念:`strlen`关注的...

关于C语言的.strlen(a[1])是什么意思,用处是什么?
strlen(字符数祖)strlen是STRing LENgth(字符串长度)的缩写。它是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括'\\0'在内)。例如:char str[10]={"china"};printf("%d",strlen(str));输出的结果不是10,也不是6,而是5。也可直接测试字符串常量的长度,例如 strlen("china")...

关于C语言strlen()函数问题?
这是因为4后面的\\0和之后的56连起来成\\056,被解释为八进制ASCII码'.',所以str实际上成了“1234.789\\0",所以它的长度刚好是8字节。希望对你有帮助。

关于字符串函数strlen请看图
答案是A strlen获得的是'\\0'之前的字符个数:5个字符分别是:\\t tab键字符 \\" 双引号字符 \\065 \\后面三个<8的数字代表8进制字符 \\xff \\x代表是16进制字符 \\n 换行符

关于strlen()函数的问题
字符串的最后一个是\\0; strlen就是从指定位置开始,过了多少个读到0,就是几。s+1 在这里是将s的位置往后面挪一个,起始位置往后了,自然少读一个就到0了。

关于strlen这个函数的疑问
strlen是系统本身的函数,意思就是字符串长度函数,当然可以计算出一个字符串的长度

C语言 strlen 函数求字节数 例如输入“how are you” 包括空格吗 矛盾...
strlen 假定字符串结束符是 "\\0", 但总长度不计入"\\0"这个字符。char s[]=" how are you";printf("%d",strlen(s)); \/\/ 含字符串和空白个数---输入语句:scanf("%s",s);拍入how are you, s 只读到how. 因为默认 空白 是分隔符。printf("%d",strlen(s)); 打出 3 本回答由提问者推荐 举报...

关于strlen()和strcpy()的问题
1. strcpy返回的是覆盖后的字符串。覆盖后只有ABCD四个字符了。你可以printf一下p看看就明白。2. 从'd'开始覆盖。

相似回答
大家正在搜