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 面试题
Java工程师面试集锦之Spring框架
Jun 16 面试题
天游软件面试
Nov 23 面试题
一个SQL面试题
Aug 21 面试题
为什么group by 和order by会使查询变慢
May 16 面试题
触发器(trigger)的功能都有哪些?写出一个触发器的例子
Sep 17 面试题
System.Array.CopyTo()和System.Array.Clone()有什么区别
Jun 20 面试题
C#的几个面试问题
May 22 面试题
init进程的作用
Apr 12 面试题
简述进程的启动、终止的方式以及如何进行进程的查看
Feb 20 面试题
介绍一下linux的文件权限
Jul 20 面试题
一道Delphi上机题
Jun 04 面试题
威盛公司软件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
轻松修复Discuz!数据库
2008/05/03 PHP
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
解析php如何将日志写进syslog
2013/06/28 PHP
浅析php中常量,变量的作用域和生存周期
2013/08/10 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
smarty模板引擎中变量及变量修饰器用法实例
2015/01/22 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
PHP程序员必须知道的两种日志实例分析
2020/05/14 PHP
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
JS上传图片预览插件制作(兼容到IE6)
2016/08/07 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
jQuery实现的简单拖拽功能示例【测试可用】
2018/08/14 jQuery
vue+php实现的微博留言功能示例
2019/03/16 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
windows10在visual studio2019下配置使用openCV4.3.0
2020/07/14 Python
Python下载网易云歌单歌曲的示例代码
2020/08/12 Python
中国央视网签名寄语
2014/01/18 职场文书
工作目标责任书
2014/07/23 职场文书
民主生活会整改措施(党员)
2014/09/18 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
《卖火柴的小女孩》教学反思
2016/02/19 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫
Python万能模板案例之matplotlib绘制甘特图
2022/04/13 Python