关于字符串格式化问题

skyx 2005-08-12 03:52:54
将字符串按照某种分割符分开的函数
如:将"abc,dfsd"存储到s1,s2中
s1=abc s2=dfsd
我知道sscanf,和strtok可以实现
但是这样个函数都服务实现分割符和分割符之间为空的情况
如:"abc,,,,,dfsd"分割存储到s1,s2,s3,s4,s5,s6中
s2到s5为NULL

是否只能写函数实现?
...全文
196 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
我啃 2005-08-25
  • 打赏
  • 举报
回复
例子:
void stropt(const char *src,char *dest1,char *dest2,int ch)
{
const char *p=strchr(src,ch);
strncpy(dest1,src,p-src);
dest1[p-src]='\0';
strcpy(dest2,p+1);
}

src是原来的字符串,ch是分割符前面的就存在dest1中,后面的就存在dest2中
例如:
char p1[100],p2[100];
stropt("iam,kkk",p1,p2,',');
p1就变成"iam"
p2就变成"kkk"
还有你可以用BOOST的REGEX正则表达式(具体的就不描述了,可以去www.boost.org上看具体文档)
skyx 2005-08-25
  • 打赏
  • 举报
回复
strtok不能实现,因为s2到s5不会为NULL

已经写了函数实现
snowbirdfly 2005-08-18
  • 打赏
  • 举报
回复
支持楼上说法~~~
lujun-cc 2005-08-13
  • 打赏
  • 举报
回复
要是你的字符串,都是用“,”分开的,用strtok也就一个循环而已,另外用strchr也可以!
jixingzhong 2005-08-12
  • 打赏
  • 举报
回复
恩 自己定义一个 分隔符的 集合好了
也不是很麻烦!!
ewayne 2005-08-12
  • 打赏
  • 举报
回复
不错,自己写也没什么,简单函数!
同意楼上
LoveYouJustOneDay 2005-08-12
  • 打赏
  • 举报
回复
自己写比较方便
又不是什么有难度的东西

定义一个分隔符的集合
然后不断查找非分割字符的子串首字母
然后copy

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧