C语言char *p=“abcde/Ofghjik/0”; ??printf(“%d/n”,strlen(p));
char*p=“abcde/Ofghjik/0”;??printf(“%d/n”,strlen(p));p为什么会是5;这5个字符分别是,,为什么...
char *p=“abcde/Ofghjik/0”; ??printf(“%d/n”,strlen(p)); p为什么会是5 ;这5个字符分别是,,为什么 谢谢的,下周要求证了
展开
1个回答
展开全部
楼主
你应该把问题弄错了
字符串
"abcde/Ofghjik/0"
应该是"abcde\0fghijk\0"吧
对于strlen是读取字符串个数,碰到\0就结束
参考:
strlen的结果要在运行的时候才能计算出来,主要用来计算字符串的长度,不是类型占内存的大小,strlen只能用char*做参数,且必须是以''\0''结尾的。
1、第二个元素就是\0
所以得到字符串长度为1
2、\t
\v
\\都是转义字符,为三个字符,后面又是\0,所以长度为3
3、\x69就是16进制的69,十进制为105,查看ASCII表对应字符,而\xxx指的是一个八进制值所对应字符,但是\082显示不是,八进制只有0-7的数字,所以这里只是一个\0
和数字
82
字符串长度为1
如果要获得每个数组中有多少个字符可以考虑用sizeof
你应该把问题弄错了
字符串
"abcde/Ofghjik/0"
应该是"abcde\0fghijk\0"吧
对于strlen是读取字符串个数,碰到\0就结束
参考:
strlen的结果要在运行的时候才能计算出来,主要用来计算字符串的长度,不是类型占内存的大小,strlen只能用char*做参数,且必须是以''\0''结尾的。
1、第二个元素就是\0
所以得到字符串长度为1
2、\t
\v
\\都是转义字符,为三个字符,后面又是\0,所以长度为3
3、\x69就是16进制的69,十进制为105,查看ASCII表对应字符,而\xxx指的是一个八进制值所对应字符,但是\082显示不是,八进制只有0-7的数字,所以这里只是一个\0
和数字
82
字符串长度为1
如果要获得每个数组中有多少个字符可以考虑用sizeof
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询