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

面试题 相关文章推荐
天游软件面试
Nov 23 面试题
南京软件公司的.net程序员笔试题
Aug 31 面试题
某公司的.net工程师面试题笔试题
Nov 22 面试题
网络安全方面的面试题
Jan 07 面试题
linux面试题参考答案(8)
Apr 19 面试题
linux比较文件内容的命令是什么
Mar 04 面试题
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
Apr 07 面试题
Ajax的优点和缺点
Nov 21 面试题
如何开发安全的AJAX应用
Mar 26 面试题
JDBC操作数据库的基本流程是什么
Oct 28 面试题
Java如何支持I18N?
Oct 31 面试题
威盛公司软件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
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
linux iconv方法的使用
2011/10/01 PHP
php 在windows下配置虚拟目录的方法介绍
2013/06/26 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
2013/05/07 Javascript
javascript 闭包详解
2015/02/15 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
2015/11/25 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
Python 3中的yield from语法详解
2017/01/18 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
基于Python log 的正确打开方式
2018/04/28 Python
python如何获取列表中每个元素的下标位置
2019/07/01 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
html5组织文档结构_动力节点Java学院整理
2017/07/11 HTML / CSS
如何用SQL语句进行模糊查找
2015/09/25 面试题
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
linux面试题参考答案(6)
2014/08/29 面试题
专升本自我鉴定
2013/10/10 职场文书
领导调研接待方案
2014/02/27 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
2014三八妇女节活动总结范文四篇
2014/03/09 职场文书
指导教师评语
2014/04/26 职场文书
医院科室评语
2015/01/04 职场文书
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL
Redis 报错 error:NOAUTH Authentication required
2022/05/15 Redis