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中如何使用Cookie
Oct 28 面试题
普通PHP程序员笔试题
Jan 01 面试题
String这个类型的class为何定义成final?
Nov 13 面试题
C/C++有关内存的思考题
Dec 04 面试题
*p++ 自增p 还是p所指向的变量
Jul 16 面试题
.net软件工程师应聘上机试题
Mar 10 面试题
傲盾软件面试题
Aug 17 面试题
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
Nov 04 面试题
几道Web/Ajax的面试题
Nov 05 面试题
几个MySql的面试题
Apr 22 面试题
Boolean b = new Boolean(“abcde”); 会编译错误码
Nov 27 面试题
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
Oct 30 面试题
威盛公司软件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操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
php进行ip地址掩码运算处理的方法
2016/07/11 PHP
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
2015/12/24 Javascript
深入浅析JavaScript中的constructor
2016/04/19 Javascript
jQuery增加、删除及修改select option的方法
2016/08/19 Javascript
AngularJS中的DOM操作用法分析
2016/11/04 Javascript
js实现登录验证码
2016/12/22 Javascript
ES6学习之变量的解构赋值
2017/02/12 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
2017/07/03 Javascript
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
2019/06/24 Javascript
浅谈vue websocket nodeJS 进行实时通信踩到的坑
2020/09/22 NodeJs
[00:58]他们到底在电话里听到了什么?
2017/11/21 DOTA
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
2019/06/27 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
python SOCKET编程基础入门
2021/02/27 Python
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
Under Armour安德玛意大利官网:美国高端运动科技品牌
2020/01/16 全球购物
高职助产应届生自荐信
2013/09/24 职场文书
2014年党员自我剖析材料
2014/10/07 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
会计试用期工作总结2015
2015/05/28 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
Python之基础函数案例详解
2021/08/30 Python
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA