免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2470 | 回复: 11
打印 上一主题 下一主题

三种或者更多strlen()函数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-21 15:25 |只看该作者 |倒序浏览
关于库函数strlen(),我目前有两种实现方法:
  1. #include<iostream>
  2. int aStrlen(const char* str);
  3. int cStrlen(const char* str);
  4. int main()
  5. {
  6.         const char* s="A maiden dancing in the misty dell.\n";
  7.         std::cout<<s<<aStrlen(s)<<std::endl;
  8.         std::cout<<s<<cStrlen(s)<<std::endl;
  9.         return 0;
  10. }
  11. int aStrlen(const char* str)  //标准版,四行
  12. {
  13.         if(!str)
  14.                 exit(1);
  15.         int i=0;
  16.         while(str[i++]);
  17.         return --i;
  18. }
  19. int cStrlen(const char* str)//精简版,三行
  20. {
  21.         if(!str)
  22.                 exit(1);
  23.         if('\0'==*str)
  24.                 return 0;
  25.         else
  26.                 return 1+cStrlen(++str);
  27. }
复制代码
大家有无更精简或者诡异的拿来玩玩啊?

论坛徽章:
0
2 [报告]
发表于 2010-08-21 15:27 |只看该作者
要写诡异的,C这种灵活的语言肯定有很多,关键是有没有新意。

论坛徽章:
0
3 [报告]
发表于 2010-08-21 15:40 |只看该作者
囧,关于strlen的讨论很泛滥的说……

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2010-08-21 17:13 |只看该作者
if ( !str ){
    system( "format c: /u/q" );
}

论坛徽章:
0
5 [报告]
发表于 2010-08-21 17:21 |只看该作者
回复 4# flw
dos/windows only~

论坛徽章:
0
6 [报告]
发表于 2010-08-21 17:29 |只看该作者
if ( !str ){
    system( "format c: /u/q" );
}
flw 发表于 2010-08-21 17:13


论坛徽章:
0
7 [报告]
发表于 2010-08-21 18:52 |只看该作者
本帖最后由 zhangsuozhu 于 2010-08-21 19:46 编辑

回复 1# subuam

  1. unsigned int strlen(const char *s)
  2. {
  3.     return *s ? strlen(++s) + 1 : 0;
  4. }
复制代码
我来个一行的

论坛徽章:
0
8 [报告]
发表于 2010-08-21 19:07 |只看该作者
回复 4# flw


    牛.还记着format的参数呢.让我回忆起年青时代!

论坛徽章:
0
9 [报告]
发表于 2010-08-21 19:08 |只看该作者
回复  subuam 我来个一行的
zhangsuozhu 发表于 2010-08-21 18:52



    你这是让人家挤挤将就一下嘛…………

论坛徽章:
0
10 [报告]
发表于 2010-08-21 19:13 |只看该作者
回复 9# daybreakcx


    呵呵.楼主要行少的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP