字符串的长度问题

来源:互联网  时间:2016/7/25 2:12:51

关于网友提出的“ 字符串的长度问题”问题疑问,本网通过在网上对“ 字符串的长度问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 字符串的长度问题
描述:

在C中字符串的长度包不包括‘/0’?


解决方案1:

当然长度是不包括的

解决方案2:

上面各位说的很好了,补充下:
字符串和字符数组不一样,字符串后面一定有'\0'作为它的元素,同时也是结束的标志。系统会自动加上的。
字符数组后面加个'\0'就是字符串。
仅供参考……

解决方案3:

引用 10 楼 Paradin 的回复:
const char *a = "123" 
通常对程序的说法a长度就是3,从这个角度上讲不包括 
strlen(a) = 3; 
但要动态分配的话就必须malloc(strlen(a) + 1) 
你记住c里的字符串要以0结尾就行

对于那些只说“包括”“不包括”的人
无语 解决方案4:

strlen();返回字符串结束符'\0'之前的字符个数,不包括'\0';

解决方案5:

const char *a = "123" 
通常对程序的说法a长度就是3,从这个角度上讲不包括 
strlen(a) = 3; 
但要动态分配的话就必须malloc(strlen(a) + 1) 
你记住c里的字符串要以0结尾就行

解决方案6:

引用 10 楼 Paradin 的回复:
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。

解决方案9:

拜托,是'\0' ,不是'/0'
长度不包括结束符

解决方案10:

strlen(char *ch)是不包括'\0'的

解决方案11:

就长度而言strlen()是不包括的因为他仅是一个标志,但是字符串的实际长度是要包括'\0',标示字符串的结束!
看你的应用,明白就行了~

解决方案12:

const char *a = "123"
通常对程序的说法a长度就是3,从这个角度上讲不包括
strlen(a) = 3;
但要动态分配的话就必须malloc(strlen(a) + 1)
你记住c里的字符串要以0结尾就行

解决方案13:

strlen的结果不包括\0

上一篇用c语言实现栈的问题
下一篇100以内的素数问题
明星图片
相关文章
《 字符串的长度问题》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)