社区
C语言
帖子详情
关于strlen这个函数的问题
zyhserry
2010-06-16 04:40:09
char array[30];
printf("strlen(array) = %d\n", strlen(array));
就这两句代码,打印出来的长度是64,我定义的是30啊,不解!
于是我重新定义char array[64];
结果打印出来是96
我重新定义成char array[32];
结果打印出来是64
什么原因啊????
我身上没分,只能散那么多了+_||
...全文
91
7
打赏
收藏
关于strlen这个函数的问题
char array[30]; printf("strlen(array) = %d\n", strlen(array)); 就这两句代码,打印出来的长度是64,我定义的是30啊,不解! 于是我重新定义char array[64]; 结果打印出来是96 我重新定义成char array[32]; 结果打印出来是64 什么原因啊???? 我身上没分,只能散那么多了+_||
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zyhserry
2010-06-16
打赏
举报
回复
哦,好像是的
char array[30] = "";
printf("strlen(array) = %d\n", strlen(array));
我这么做以后,打印出来就是0了。。。
ok2210495
2010-06-16
打赏
举报
回复
strlen()函数的原理就是找第一个'\0'在哪里的,可能你的程序开辟char array[30]后没有多管闲事给array[30]中的某个赋值为'\0',执行strlen(array)了程序只是很死板地从array[0]开始往下找第一个'\0',找到array[29]了还没找到,不会停继续往下……
你可以用debug看看刚开辟char array[30]时那里面都是什么值吧
huanmie_09
2010-06-16
打赏
举报
回复
char array[30];
要区分
sizeof(array)和strlen(array)的区别.
strlen是计算从array首地址开始,直到遇到字符串结束符'\0'为止,并且不包括'\0'的字符个数
zhangweiit
2010-06-16
打赏
举报
回复
楼主,你这个得到的64,32,其实是一个不确定的值
char array[30];
这个数组还没经过初始化,就直接用strlen求字符长度,是不对的
你用sizeof可以确定,因为sizeof会根据数组定义的类型与大小来得出占用空间
但是strlen只会从数组的头的内存地址开始,直到找到'\0'的字符,或是0才结束
这就是strlen与sizeof的一个重要区别
zyhserry
2010-06-16
打赏
举报
回复
char array[30];
printf("strlen(array) = %d\n", strlen(array));
main里就这两行代码,其它的没有
ok2210495
2010-06-16
打赏
举报
回复
你在array中给它加上字符串结束符'\0'没?
zyhserry
2010-06-16
打赏
举报
回复
也就是说,如果数组大小不是2的整次幂,则先变成2的整次幂,再加上32,why?
C/C++程序设计员应聘常见面试试题深入剖析
C/C++程序设计员应聘常见面试试题深入剖析,不看会后悔!!!!!!!!!
【C语言】
strlen
()
函数
strlen
函数
:计算的是字符串str的长度,从字符的首地址开始遍历,以 '\0' 为结束标志,然后将计算的长度返回,计算的长度并不包含'\0'。所以使用时,需规范初始化字符数组。本文也详细描述了实现
strlen
函数
功能的三种方法。......
字符串
函数
:
strlen
函数
,strcpy
函数
,strcat
函数
,strcmp
函数
目录:1.字符串
函数
strlen
(1)
strlen
函数
(2)
strlen
的使用a.代码b.运行结果(3)模拟实现
strlen
函数
a.代码b.运行结果(4)注意:2.字符串
函数
strcpy(1)strcpy
函数
(2)strcpy的使用a.代码b.运行结果c.错误举例(3)模拟实现strcpya.代码3.字符串
函数
strcat(1)strcat
函数
1.字符串
函数
strlen
(1)
strlen
函数
strlen
函数
返回的是在字符串中’\0’前面出现的字符的个数 (2)
strlen
的使用 a.代码 #inclu
自己动手写一个
strlen
()
函数
strlen
()
函数
:
strlen
所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)。 那么我们就来尝试一下自己动手写一个
strlen
函数
。 方法一: #include <stdio.h> #include <assert.h> int my_
strlen
(const char* s) { char* p = s; assert(p
my_
strlen
()
函数
文章目录前言一、
strlen
是什么?二、my_
strlen
()1.计数器法2.递归法2.指针-指针总结 前言
strlen
()
函数
用于计算字符串的长度,引用头
函数
<string.h> 一、
strlen
是什么? 例如字符串{‘a’,‘b’,‘c’,‘d’,’\0’,‘e’,‘f’,‘g’,’\0’},用sizeof()所求结果为9个字节,是字符串的真实长度,而用
strlen
()
函数
求得的结果为4,是计算第一个‘\0’之前的字符串长度。 如何自我实现my_
strlen
()
函数
,是本文的重点..
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章