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

面试题 相关文章推荐
Java的接口和C++的虚类的相同和不同处
Mar 27 面试题
List, Set, Map是否继承自Collection接口?
May 16 面试题
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
May 18 面试题
Oracle中delete,truncate和drop的区别
May 05 面试题
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
Jan 13 面试题
C#笔试题集合
Jun 21 面试题
C#实现启动一个进程
Oct 01 面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
Jan 19 面试题
linux下进程间通信的方式
Dec 23 面试题
实体的生命周期
Aug 31 面试题
AJAX都有哪些有点和缺点
Nov 03 面试题
J2EE中常用的名词进行解释
Nov 09 面试题
威盛公司软件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
oracle资料库函式库
2006/10/09 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
基于jquery的页面划词搜索JS
2010/09/14 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
jquery trigger实现联动的方法
2016/02/29 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
2018/02/01 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
微信小程序中data-key属性之数据传输(经验总结)
2020/08/22 Javascript
[49:07]VGJ.T vs Optic Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
使用Python解析JSON数据的基本方法
2015/10/15 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
2015/12/24 Python
window下eclipse安装python插件教程
2017/04/24 Python
python Tkinter版学生管理系统
2019/02/20 Python
用python做游戏的细节详解
2019/06/25 Python
详解mac python+selenium+Chrome 简单案例
2019/11/08 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
python类中super() 的使用解析
2019/12/19 Python
公认8个效率最高的爬虫框架
2020/07/28 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
HTML5新增属性data-*和js/jquery之间的交互及注意事项
2017/08/08 HTML / CSS
Senreve官网:美国旧金山的奢侈手袋品牌
2019/03/21 全球购物
餐厅总厨求职信
2014/03/04 职场文书
大学生职业生涯规划书汇总
2014/03/20 职场文书
锦旗标语大全
2014/06/23 职场文书
自强自立美德少年事迹材料
2014/08/16 职场文书
社区服务理念口号
2015/12/25 职场文书
一文搞懂MySQL索引页结构
2022/02/28 MySQL
Java设计模式之代理模式
2022/04/22 Java/Android