关于网友提出的“ 字符串的长度问题”问题疑问,本网通过在网上对“ 字符串的长度问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 字符串的长度问题描述:
在C中字符串的长度包不包括‘/0’?
解决方案1:
当然长度是不包括的
解决方案2: 上面各位说的很好了,补充下:
字符串和字符数组不一样,字符串后面一定有'\0'作为它的元素,同时也是结束的标志。系统会自动加上的。
字符数组后面加个'\0'就是字符串。
仅供参考……
对于那些只说“包括”“不包括”的人
无语 解决方案4:
strlen();返回字符串结束符'\0'之前的字符个数,不包括'\0';
解决方案5: const char *a = "123"
通常对程序的说法a长度就是3,从这个角度上讲不包括
strlen(a) = 3;
但要动态分配的话就必须malloc(strlen(a) + 1)
你记住c里的字符串要以0结尾就行
恩 ls 说的叫清楚 呵呵
strlen的结果不包括'\0' 解决方案7:
size_t __cdecl strlen (
const char * str
)
{
const char *eos = str;
while( *eos++ ) ;
return( (int)(eos - str - 1) );
}
这是源码
是不包含\0的
具体你验证一下就知道了 解决方案8:
strlen函数 原型:extern int strlen(char *s);
用法:#include
功能:计算字符串s的(unsigned int型)长度
说明:返回s的长度,不包括结束符NULL。
拜托,是'\0' ,不是'/0'
长度不包括结束符
strlen(char *ch)是不包括'\0'的
解决方案11: 就长度而言strlen()是不包括的因为他仅是一个标志,但是字符串的实际长度是要包括'\0',标示字符串的结束!
看你的应用,明白就行了~
const char *a = "123"
通常对程序的说法a长度就是3,从这个角度上讲不包括
strlen(a) = 3;
但要动态分配的话就必须malloc(strlen(a) + 1)
你记住c里的字符串要以0结尾就行
strlen的结果不包括\0