C语言实现strlen的三种方法小结.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

C语言实现strlen的三种方法小结

目录1.strlen介绍2.如何使用strlen库函数3.三种方法实现strlen计数器法:4.关于strlen返回值

1.strlen介绍

strlen---求字符串长度

size_tstrlen(constchar*str);

找到字符串后的\0为止,不包含\0;

2.如何使用strlen库函数

intlen=strlen(“abcdef”);

输出结果:6

chararr[]={a,b,c?,d?,e,f};

intlen=strlen(arr);

输出结果:随机值

3.三种方法实现strlen计数器法:

#includestdio.h

#includeassert.h

intmy_strlen(constchar*str)

intcount=0;

assert(str!=NULL);

while(*str!=\0)//while(*str)

count++;

str++;

returncount;

intmain()

intlen=my_strlen(abcdef);

printf(%d\n,len);

return0;

}

递归法:

#includestdio.h

intmy_strlen(char*str)

if(*str!=\0)

return1+my_strlen(str+1);

return0;

intmain()

chararr[]={abcdef};

intret=my_strlen(arr);

printf(%d\n,ret);

return0;

}

指针-指针法:

#includestdio.h

intmy_strlen(char*str)

char*start=str;

char*end=str;

while(*end!=\0)

end++;

returnend-start;

intmain()

chararr[]=bit;

intlen=my_strlen(arr);

printf(%d\n,len);

return0;

}

4.关于strlen返回值

strlen库函数的返回值是size_t,其含义是unsignedint,即为无符号数;我们自己实现库函数strlen的my_strlen的返回值则是int,即为有符号数.

返回类型为unsignedint和int各有利弊:1.返回int类型不容易出现错误2.返回unsignedint类型说明字符串的长度是没有负数的

3-6=-3;由于strlen库函数的返回类型是unsignedint,则-3被视为无符号数自然也就比0大;所以容易引发歧义与误解.

文档评论(0)

135****5541 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档