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

面试题 相关文章推荐
如何实现jdbc性能优化
Jul 30 面试题
某IT外企面试题-二分法求方程!看看大家的C++功底
Jul 04 面试题
雅虎笔试题(字符串操作)
Mar 24 面试题
写出二分查找算法的两种实现
May 13 面试题
SQL Server面试题
Oct 17 面试题
委托与事件是什么关系?为什么要使用委托
Apr 18 面试题
网络通讯中,端口有什么含义,端口的取值范围
Nov 23 面试题
Linux常见面试题
Oct 04 面试题
中科软笔试题和面试题
Oct 07 面试题
Why do we need Unit test
Jan 03 面试题
什么是方法的重载
Jun 24 面试题
final, finally, finalize的区别
Mar 01 面试题
威盛公司软件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
苏联队长,苏联超人蝙蝠侠,这些登场的“山寨”英雄真的很严肃
2020/04/09 欧美动漫
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2009/06/22 Javascript
小试JQuery的AutoComplete插件
2011/05/04 Javascript
浅析Cookie中的Path与domain
2013/12/18 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
基于vue-cli配置lib-flexible + rem实现移动端自适应
2017/12/26 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
Vue resource三种请求格式和万能测试地址
2018/09/26 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
Python实现数据库编程方法详解
2015/06/09 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
Scrapy框架使用的基本知识
2018/10/21 Python
简单了解Django应用app及分布式路由
2019/07/24 Python
django和vue实现数据交互的方法
2019/08/21 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
python属于跨平台语言码
2020/06/09 Python
numba提升python运行速度的实例方法
2021/01/25 Python
亚洲最大的运动鞋寄售店:KicksCrew
2020/11/26 全球购物
证券期货行业个人的自我评价
2013/12/26 职场文书
关于毕业的广播稿
2014/01/10 职场文书
师德师风建设方案
2014/05/08 职场文书
作风年建设汇报材料
2014/08/14 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
2014年平安建设工作总结
2014/11/19 职场文书
被委托人身份证明
2015/08/07 职场文书
创业计划书之干洗店
2019/09/10 职场文书
vue基于Teleport实现Modal组件
2021/05/31 Vue.js