| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 421 人关注过本帖
标题:在用strtok_r实现字符串分隔的时候,遇到一个问题。
取消只看楼主 加入收藏
hit小龙
Rank: 6Rank: 6
等 级:侠之大者
帖 子:173
专家分:462
注 册:2012-12-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
在用strtok_r实现字符串分隔的时候,遇到一个问题。
在用strtok_r实现字符串分隔的时候,遇到一个问题。
当需要分隔的字符串之间存在错误时,
比如, 我的文件里每行的字符串是这样的
1,2,3,4
5,6,7,8
以逗号分隔。

但是,如果有组数据,漏了某项。 比如这样
1,,3,4
这时候,我的获取就出现问题了,  求教,这个时候我要怎么解决?

while((p[i]=strtok_r(buf,";",&outer_ptr))!=NULL)
 {
        i++;
        buf=NULL;
 }

我是这样分隔的。    希望在错误的地方。  比如1,,3,4中。  2的位置修改为?,即p[1]="?"表示出错。

求教...
在线等。
搜索更多相关主题的帖子: 字符串 在线 
2013-11-20 22:04
hit小龙
Rank: 6Rank: 6
等 级:侠之大者
帖 子:173
专家分:462
注 册:2012-12-6
收藏
得分:0 
回复 2楼 pink_duo
你好。
看了下你的代码,效果和我这是一样的。
#include <string.h>
#include <stdio.h>
int main(void)
{
    char buffer[30] = "abc,?,,,,d";
    int i = 0, j = 0;
    char *p[20]= {NULL};
    char *buf = buffer;
   
    char *outer_ptr=NULL;
    while((p[i]=strtok_r(buf,",",&outer_ptr))!=NULL)
    {
        i++;
        buf=NULL;
    }
    for (j=0; j<i; j++)
    {
        printf("%s--",p[j]);
    }
   
    return 0;
}

这样的输出,是abc--?--d--      
而针对这个例子,我想要的结果是abc--?--?--?--?--d-- 这样的。
即以,分隔 但是如果说,,内没有内容,则在该位置用?表示。
请问, 你知道要怎么实现吗?
2013-11-21 10:21
hit小龙
Rank: 6Rank: 6
等 级:侠之大者
帖 子:173
专家分:462
注 册:2012-12-6
收藏
得分:0 
回复 5楼 pink_duo
你提供的这个不能捕获连续的字符。
不过给了我启示。 自定义函数解决问题。

还是很感谢。
2013-11-22 22:14
快速回复:在用strtok_r实现字符串分隔的时候,遇到一个问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016916 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved