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

面试题 相关文章推荐
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
Sep 05 面试题
SQL面试题
Dec 09 面试题
程序集与命名空间有什么不同
Jul 25 面试题
一篇.NET面试题
Sep 29 面试题
网络体系结构及协议的定义
Mar 13 面试题
params有什么用
Mar 01 面试题
Linux Interview Questions For software testers
Jun 02 面试题
一份软件工程师的面试试题
Feb 01 面试题
几个MySql的面试题
Apr 22 面试题
Java语言的优势
Jan 10 面试题
Java模拟试题
Nov 10 面试题
什么是ESB?请介绍一下ESB?
May 27 面试题
威盛公司软件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安装攻略:常见问题解答(二)
2006/10/09 PHP
判断PHP数组是否为空的代码
2011/09/08 PHP
phpstorm编辑器乱码问题解决
2014/12/01 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
斜45度寻路实现函数
2009/08/20 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
jquery easyui使用心得
2014/07/07 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
JavaScript中的原型链prototype介绍
2014/12/30 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
2015/04/03 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
2016/12/14 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
详解Angular2 之 结构型指令
2017/06/21 Javascript
详解基于angular-cli配置代理解决跨域请求问题
2017/07/05 Javascript
JS中min函数实例讲解
2019/02/18 Javascript
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
Python使用剪切板的方法
2017/06/06 Python
Python生成随机密码的方法
2017/06/16 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
使用Django搭建web服务器的例子(最最正确的方式)
2019/08/29 Python
通过Python编写一个简单登录功能过程解析
2019/09/04 Python
opencv3/C++ 平面对象识别&透视变换方式
2019/12/11 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
深入了解Python enumerate和zip
2020/07/16 Python
python如何代码集体右移
2020/07/20 Python
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
应届生船舶驾驶求职信
2013/10/19 职场文书
家庭贫困证明
2014/09/23 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
详解Django的MVT设计模式
2021/04/29 Python
Docker容器harbor私有仓库部署和管理
2022/08/05 Servers