strlen的几种不同实现方法


Posted in 面试题 onMay 31, 2013
int strlen(const char *str)
{
assert(str != NULL);
int len = 0;
while((*str++) != ‘\0′)
len++;
return len;
}
第二种方法:
int strlen(const char *str)
{
assert(str);
const char *p = str;
while(*p++); /*use addresses to count the length of str*/
return p – str – 1;
}
第三种方法:
int strlen(const char* str)
{
if (str[0] == ‘\0′)
return 0;
else
return strlen((char *)(&str[0]+1))+1; /*iteration*/
}
ANSI C标准中的说法摘录如下: (1)当一个数组标识符出现在表达式中,这个标识符的类型就从“某种类型T的数组”转换成“指向类型T的指针”,而且它的值就等于数组第一个元素的地址。但是当数组标识符被用作sizeof和取址(&)操作的操作数时,sizeof返回的是整个数组的大小,而取址操作返回的是指向数组的指针(而不是指向一个值为数组头元素地址的指针的指针)。(2)下列表达式不能产生lvalue: 数组名,函数,枚举常量,赋值表达式,强制类型转换,函数调用。

Tags in this post...

面试题 相关文章推荐
PHP两种查询函数array/row的区别
Jun 03 面试题
请写出 float x 与"零值"比较的 if 语句
Jan 04 面试题
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
Jan 21 面试题
世界经理人咨询有限公司面试
Sep 23 面试题
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
Nov 24 面试题
介绍一下Make? 为什么使用make
Dec 08 面试题
品恩科技软件测试面试题
Oct 26 面试题
EJB实例的生命周期
Oct 28 面试题
几个常见的消息中间件(MOM)
Jan 08 面试题
Python文件操作的面试题
Jun 22 面试题
启动一个线程是用run()还是start()
Dec 25 面试题
一套英文Java笔试题面试题
Apr 21 面试题
威盛公司软件C++工程师笔试题面试题
Jul 16 #面试题
金山毒霸系列的笔试题
Apr 13 #面试题
JAVA和C++区别都有哪些
Mar 30 #面试题
凌阳科技股份有限公司C++程序员面试题笔试题
Nov 20 #面试题
C++面试题:关于链表和指针
Jun 05 #面试题
C和C++经典笔试题附答案解析
Aug 18 #面试题
字符串str除首尾字符外的其他字符按升序排列
Mar 08 #面试题
You might like
PHP与C#分别格式化文件大小的代码
2011/05/14 PHP
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
php smtp实现发送邮件功能
2017/06/22 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
JQuery在页面中添加和除移DOM示例代码
2013/06/24 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
javascript实现Email邮件显示与删除功能
2015/11/21 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
2016/03/10 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
JS创建Tag标签的方法详解
2017/06/09 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
jQuery中DOM常见操作实例小结
2019/08/01 jQuery
原生JS实现九宫格抽奖
2020/09/13 Javascript
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
python tkinter控件布局项目实例
2019/11/04 Python
python实现ssh及sftp功能(实例代码)
2020/03/16 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
2020/10/22 Python
flask框架中的cookie和session使用
2021/01/31 Python
html5绘制时钟动画
2014/12/15 HTML / CSS
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
卫校中专生个人自我评价
2013/09/19 职场文书
房地产员工找工作的自我评价
2013/11/15 职场文书
艺术应用与设计个人的自我评价
2013/11/23 职场文书
国际贸易专业个人鉴定
2014/02/22 职场文书
自我管理的活动方案
2014/08/25 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书
MySQL基础快速入门知识总结(附思维导图)
2021/09/25 MySQL
JavaScript中10个Reduce常用场景技巧
2022/06/21 Javascript