免费注册 查看新帖 |

Chinaunix

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

[C] 请教一个关于字符指针的问题,谢谢 [复制链接]

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
21 [报告]
发表于 2012-08-29 09:50 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
22 [报告]
发表于 2012-08-29 09:57 |只看该作者
pmerofc 发表于 2012-08-29 09:50
回复 20# hellioncu


你网上搜索下“strlen 源码”,看看人家的实现

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
23 [报告]
发表于 2012-08-29 10:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
24 [报告]
发表于 2012-08-29 10:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
25 [报告]
发表于 2012-08-29 10:06 |只看该作者
pmerofc 发表于 2012-08-29 10:03
你在回避我的问题


不知道是谁回避呢

论坛徽章:
0
26 [报告]
发表于 2012-08-29 10:33 |只看该作者
本帖最后由 androiddiscuz 于 2012-08-29 10:36 编辑

回复 18# pmerofc


    嗯,谢谢12楼的兄弟。不过改完以后觉得自己的程序也不比参考答案简单了,甚至显得很猥锁了,现在看起来倒是参考答案更清晰明了。
  1. int strend(char *s, char *t)                                                                                                                                 
  2. {
  3.     unsigned s_len = strlen(s);
  4.     unsigned t_len = strlen(t);
  5.     if(s_len < t_len)
  6.         return 0;

  7.     s += (s_len - t_len);
  8.     while (*s == *t)
  9.     {   
  10.         if (*s == '\0')
  11.             return 1;
  12.         ++s;
  13.         ++t;
  14.     }   
  15.     return 0;
  16. }
复制代码
至于两位争辩的关于strlen函数的问题,我目前是无能为力了。看了它的代码,我觉得自己要写也只能写成这样(很可能还不如,呵呵),而且按照隐藏细节的原则来的话,还得自己封装个函数,有重复发明轮子的嫌疑。

顺便把strlen函数的代码贴上,有道行的兄弟、前辈们请继续发表高见,小弟在一旁学习了,谢谢!
  1. size_t strlen(const char *s) {
  2.   const char *eos = s;
  3.   while (*eos++);
  4.   return (int) (eos - s - 1);
  5. }

复制代码

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
27 [报告]
发表于 2012-08-29 11:37 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
28 [报告]
发表于 2012-08-29 11:41 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP