免费注册 查看新帖 |

Chinaunix

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

C语言如何实现将字符串分隔开? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-28 20:00 |只看该作者 |倒序浏览
C语言如何实现将字符串“A1234-E4566-SDFS”中‘-’分隔开的几个字串“A1234”“E4566”“SDFS”取出来?

论坛徽章:
0
2 [报告]
发表于 2010-05-28 20:01 |只看该作者
有个函数叫strtok
  1. #include <stdio.h>
  2. #include <string.h>

  3. int main(void)
  4. {
  5.         char buf[] = "A1234-E4566-SDFS";
  6.         char *tok;

  7.         tok = strtok(buf, "-");
  8.         while (tok) {
  9.                 (void)printf("%s\n", tok);
  10.                 tok = strtok(0, "-");
  11.         }

  12.         return 0;
  13. }
复制代码

论坛徽章:
2
摩羯座
日期:2013-10-10 14:29:04天蝎座
日期:2014-01-03 09:14:49
3 [报告]
发表于 2010-05-28 21:15 |只看该作者
有意思,学习了

论坛徽章:
0
4 [报告]
发表于 2010-05-28 22:53 |只看该作者
strtok不可重入
用char *strtok_r(char *str, const char *delim, char **saveptr)吧

论坛徽章:
0
5 [报告]
发表于 2010-05-29 08:59 |只看该作者
原来还有可以只调用的函数啊...之前一直都是先按字节读取字符串判断分隔符的位置之后用strncpy、strncat之类的搞出来...

论坛徽章:
0
6 [报告]
发表于 2010-05-29 13:17 |只看该作者
strtok不可重入
用char *strtok_r(char *str, const char *delim, char **saveptr)吧


可重入不可重入在这里没有很大关系,并不涉及全局变量区,中断向量表等

论坛徽章:
0
7 [报告]
发表于 2010-05-29 18:04 |只看该作者
谢谢了,算法很不错

论坛徽章:
0
8 [报告]
发表于 2010-05-31 01:06 |只看该作者
strtok  or  strsep  用哪个函数都行

论坛徽章:
0
9 [报告]
发表于 2010-06-01 21:50 |只看该作者
scanf("%s-%s-%s", str1, str2, str3);

论坛徽章:
0
10 [报告]
发表于 2010-06-03 10:21 |只看该作者
strtok函数。
虽然行为怪异了点..
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP