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文件里面include另外一个PHP文件两次吗
May 22 面试题
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
Jun 02 面试题
枚举和一组预处理的#define有什么不同
Sep 21 面试题
"序列点" 是什么
Jul 29 面试题
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
Dec 07 面试题
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
Apr 03 面试题
linux面试题参考答案(2)
Dec 06 面试题
linux面试题参考答案(5)
Sep 01 面试题
百度JavaScript笔试题
Jan 15 面试题
不同浏览器创建XMLHttpRequest方法有什么不同
Nov 17 面试题
为什么Runtime.exec(“ls”)没有任何输出?
Oct 03 面试题
META-INF文件夹中的MANIFEST.MF的作用
Jun 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
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
Yii实现MySQL多数据库和读写分离实例分析
2014/12/03 PHP
PHP通过串口实现发送短信
2015/07/08 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
实用的Jquery选项卡TAB示例代码
2013/08/28 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
2014/08/07 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
2016/05/15 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
2017/01/01 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
2017/03/13 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
vue.js todolist实现代码
2017/10/29 Javascript
node中modules.exports与exports导出的区别
2018/06/08 Javascript
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
原生js实现3D轮播图
2020/03/21 Javascript
js实现翻牌小游戏
2020/07/31 Javascript
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python 网络编程起步(Socket发送消息)
2008/09/06 Python
Python中的map、reduce和filter浅析
2014/04/26 Python
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
Python 处理图片像素点的实例
2019/01/08 Python
python pcm音频添加头转成Wav格式文件的方法
2019/01/09 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
纯CSS3实现8组超炫酷鼠标滑过图片动画
2016/03/16 HTML / CSS
设计模式的基本要素是什么
2014/04/21 面试题
企业统计员岗位职责
2013/12/13 职场文书
美容院管理规章制度
2015/08/05 职场文书
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python