免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: gaochang2008
打印 上一主题 下一主题

[算法] 不简单的strlen长度计算, [复制链接]

论坛徽章:
0
41 [报告]
发表于 2009-05-13 17:49 |只看该作者
原帖由 retuor 于 2009-5-13 17:45 发表
int strlen(char *p)
{
    return (printf ("%s", p));
}


这个也挺nb啊, 不过还是调用库函数了

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
42 [报告]
发表于 2009-05-13 17:52 |只看该作者
  1. static inline uint32_t _StrLen(char* p)
  2. {
  3.         if('\0'==p[0])return 0;
  4.         if('\0'==p[1])return 1;
  5.         if('\0'==p[2])return 2;
  6.         if('\0'==p[3])return 3;

  7.         for(*(uint32_t*)p=4;'\0'!=p[*(uint32_t*)p]; ++(*(uint32_t*)p))
  8.         {

  9.         }
  10.         return *(uint32_t*)p;
  11. }
  12. //我希望我以后不要这么无聊了,我也知道有人会说,不许改变原来字符串
复制代码

论坛徽章:
1
射手座
日期:2013-08-21 13:11:46
43 [报告]
发表于 2009-05-13 17:59 |只看该作者

回复 #41 retuor 的帖子

这个也行??
太牛逼

论坛徽章:
0
44 [报告]
发表于 2009-05-13 18:03 |只看该作者
原帖由 xinglp 于 2009-5-13 17:52 发表
static inline uint32_t _StrLen(char* p)
{
        if('\0'==p[0])return 0;
        if('\0'==p[1])return 1;
        if('\0'==p[2])return 2;
        if('\0'==p[3])return 3;

        for(*(uin ...



太TM狠了, 就地就存了哈!!!

论坛徽章:
0
45 [报告]
发表于 2009-05-13 18:04 |只看该作者
传说中的走到哪记到哪

论坛徽章:
0
46 [报告]
发表于 2009-05-13 18:19 |只看该作者

回复 #42 暗底 的帖子

严格来说,printf不算函数

论坛徽章:
0
47 [报告]
发表于 2009-05-13 18:26 |只看该作者
无解

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
48 [报告]
发表于 2009-05-13 18:27 |只看该作者

回复 #47 llxxtnt 的帖子

printf() 还 系统调用呢.

论坛徽章:
0
49 [报告]
发表于 2009-05-13 18:29 |只看该作者
41楼的解答真是绝了,这都行

论坛徽章:
0
50 [报告]
发表于 2009-05-13 18:44 |只看该作者
为了避免输出其他信息,在41楼基础上改成这样
int Strlen(char* p)
{
        return (sprintf(p,p));
}
当然,对于常量字符串就不行了,会出错的

[ 本帖最后由 daybreakcx 于 2009-5-13 18:47 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP