国三c语言上机 字符串一类的问题为什么有时用strlen函数但有时却不用

考过国三的请进... 考过国三的请进 展开
 我来答
caftxkf
2011-09-09 · TA获得超过168个赞
知道答主
回答量:106
采纳率:0%
帮助的人:66.5万
展开全部
*p是char(字符型)指针变量
先将*p的地址*(字符串的第一个字符)赋给s,然后执行while循环,*p所指地址改变为最后一个字符的地址,p-s就是*p最后的地址减去最初的地址,得到的就是字符串的长度了。

逐字解释下你的程序
#include <studio.h>
#include <string.h> 这个程序包含了2个头文件 studio 和string
int test strlen(char *s) 这是一个等待调用的子程序 程序名为 strlen 调用的时候,给入与
括号里的相同类型变量
{char *p=s; 定义字符串变量 p 并把其地址的第一个给指针 s
while (*p) 当指针没有指到最后一位时
p++; 字符串向后移动一位
return p-s; 返回值为字符串的最后一位的地址(电脑中的物理地址)减去第一位的
地址
}
关于字符串在电脑中的存放的物理地址,一般是指针指向字符串的第一个物理地址,当调用的时候会依次取用
如字符串”angngongbi”
对应的逻辑地址 物理地址(假设的)
a 0 oE0FHI2
n 1 0G3FTE2
g 2 .......
n 3 .......
g 4 .......
o 5 .......
n 6 .......
g 7 .......
b 8 .......
i 9 .......

参考资料: 百度一下

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liufuqin123456
2011-09-10
知道答主
回答量:9
采纳率:0%
帮助的人:1.3万
展开全部
其实strlen是现成计算字符串长度的函数,当我们需要是就直接调用就ok了,不然的话,你要自己去实现计算字符串长度的代码。
利用时库函数写代码是为了提高工作的效率,c语言上机字符串一类的问题为什么有时用strlen函数但有时却不用这个完全是看编写程序的人而决定的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
魔群领袖
2011-09-22 · TA获得超过1523个赞
知道小有建树答主
回答量:517
采纳率:0%
帮助的人:443万
展开全部
strlen 最大的作用是防止你做内存拷贝时 越界,因为每个字符串申请的空间不同,以字符串实际长度拷贝可防止读值越界

可以参考strncpy memcpy strncmp 看下第三个长度参数的作用,sizeof是判断类型的大小并不关心实际值的长度,用处不一样
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巴斯乔XA
2011-09-11 · 超过19用户采纳过TA的回答
知道答主
回答量:103
采纳率:0%
帮助的人:51.9万
展开全部
strlen() 返回的是字符串的实际长度,而有时候我们要求的是所声明字符串变量所占的内存大小,这两者是不同的;
例如:
char str[20]="kkk";
str[]数组占存20字节,而strlen(str)是3;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓝骑士之阿强
2011-09-09 · TA获得超过274个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:144万
展开全部
当你想知道字符串的长度时,就用strlen函数!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式