免费注册 查看新帖 |

Chinaunix

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

[C] 怎么获取一个字符串的最后一个字符? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-01-17 16:50 |只看该作者
1 #include    <stdio.h>
      2 #include    <string.h>
      3
      4 int
      5 main(void)
      6 {
      7     char    *str = "abcdef", *p;
      8
      9     p = str;
     10     p += (strlen(str) - 1);
     11     printf("%c\n", *p);
     12     exit(0);
     13 }

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
12 [报告]
发表于 2008-01-17 16:53 |只看该作者
我想获得所有匹配中最后一次出现的字符串。:em11: :em11:

论坛徽章:
0
13 [报告]
发表于 2008-01-17 16:55 |只看该作者

回复 #12 FinalBSD 的帖子

strrchr

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
14 [报告]
发表于 2008-01-17 17:00 |只看该作者
原帖由 xi2008wang 于 2008-1-17 16:55 发表
strrchr

字符串,非字符

论坛徽章:
0
15 [报告]
发表于 2008-01-17 17:09 |只看该作者

回复 #10 yecheng_110 的帖子

我觉得更快。
因为strlen本身是怎么实现的,上面都是实现形式之一。

论坛徽章:
1
双子座
日期:2015-01-04 14:25:06
16 [报告]
发表于 2008-01-17 21:53 |只看该作者
原帖由 piaoxiang 于 2008-1-17 17:09 发表
我觉得更快。
因为strlen本身是怎么实现的,上面都是实现形式之一。

建议看看《编程卓越之道》第二卷 10.1.1.1 使用c语言标准字符串库函数
strlen可能和你想的不大一样

论坛徽章:
0
17 [报告]
发表于 2008-01-17 22:10 |只看该作者
strstr

论坛徽章:
0
18 [报告]
发表于 2008-01-17 22:36 |只看该作者

回复 #16 yecheng_110 的帖子

这些库函数应该都是用汇编实现的,为了更快,进行了手工优化。

论坛徽章:
0
19 [报告]
发表于 2008-01-17 23:04 |只看该作者
原帖由 yecheng_110 于 2008-1-17 13:50 发表


这个有strlen的做法快吗?



呵呵,做考试题习惯了,考试题一般都不允许用库函数的.

另外strlen是如何求串长的?不也是一个一个的比较,直到串的结尾的么?

就算是strlen是优化过的,但是调用它,系统也是要有开销的吧,

我觉得我这个不需要调用其它函数,效率应该略高吧???

我去找strlen源代码看看.

[ 本帖最后由 pcbit 于 2008-1-17 23:09 编辑 ]

论坛徽章:
0
20 [报告]
发表于 2008-01-18 08:36 |只看该作者
原帖由 FinalBSD 于 2008-1-17 16:53 发表
我想获得所有匹配中最后一次出现的字符串。:em11: :em11:

找到一个做一个标记,如果其后未发现匹配字符串,那么这就是最后出现的字符串
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP