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...

面试题 相关文章推荐
xml有哪些解析技术?区别是什么
Apr 26 面试题
简述synchronized和java.util.concurrent.locks.Lock的异同
Dec 08 面试题
在C语言中"指针和数组等价"到底是什么意思?
Mar 24 面试题
这段代码难道不该打印出56吗
Feb 27 面试题
威盛公司软件C++工程师笔试题面试题
Jul 16 面试题
什么是数据库锁?Oracle中都有哪些类型的锁?
Aug 21 面试题
2019年分享net面试的经历和题目
Aug 07 面试题
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
Jan 06 面试题
MYSQL支持事务吗
Aug 09 面试题
用Java语言将一个键盘输入的数字转化成中文输出
Jan 25 面试题
四种会话跟踪技术
May 20 面试题
Delphi笔试题
Nov 14 面试题
威盛公司软件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
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
深入PHP异步执行的详解
2013/06/03 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
PHP生成Gif图片验证码
2013/10/27 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
2015/03/03 PHP
支付宝接口开发集成支付环境小结
2015/03/17 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
基于jQuery的倒计时插件代码
2011/05/07 Javascript
JavaScript创建类/对象的几种方式概述及实例
2013/05/06 Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
2013/12/31 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
2016/01/12 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
layui获取多选框中的值方法
2018/08/15 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
JS如何实现在弹出窗口中加载页面
2020/12/03 Javascript
python strip()函数 介绍
2013/05/24 Python
python sys模块sys.path使用方法示例
2013/12/04 Python
详细介绍Python中的偏函数
2015/04/27 Python
Python发送form-data请求及拼接form-data内容的方法
2016/03/05 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
2016/05/25 Python
python与php实现分割文件代码
2017/03/06 Python
Python基本socket通信控制操作示例
2019/01/30 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
基于Python中的yield表达式介绍
2019/11/19 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
python的链表基础知识点
2020/09/13 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
浅谈利用缓存来优化HTML5 Canvas程序的性能
2015/05/12 HTML / CSS
作风建设整改方案
2014/10/27 职场文书
教师见习总结范文
2015/06/23 职场文书
给领导敬酒词
2015/08/12 职场文书
污染环境建议书
2015/09/14 职场文书