免费注册 查看新帖 |

Chinaunix

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

字符串分割字符串的问题  关闭 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-19 17:10 |只看该作者 |倒序浏览
大家好,现在想实现用字符串分割字符串的功能,一时间无从下手,昨天一兄弟给弄了一个,但是有Bug,请各位高们帮定一下忙,例如字符串的内容为

2009-09-23[tw]06:59:59[tw]113.107.72.210[tw]GET /explorer.asp?action=column&p=i&id=74&eid=4[tw]-[tw]211.137.180.233[tw]-[tw]-[tw]200[tw]0[tw]937 我想按照[tw]进行分割,分了以后存放在数组里面,请各们高手出招!

那位兄弟的代码我也贴出来
#include <stdio.h>
#include <string.h>

#define MAX_LINE 1024

int main(void) {
    char buf[MAX_LINE]; /* 缓冲区 */
    FILE *fp;
    //读取文件,如果无法找到文件则退出该程序

    if ((fp = fopen("/var/www/app/hlp9/2009-10-14-09.log", "r")) == NULL) { /* 打开文件 */
        perror("fail to read");
        //exit(1);

    }
    int lines;
    char *a[100][5];
    for (lines=0;fgets(buf, MAX_LINE, fp) != NULL;lines++) { /* 每次读入一行 */
        //len = strlen(buf);

        /* 输出所读到的字符画串,并将字符个数输出 */
        //buf[len - 1] = '\0'; /* 去掉换行符,这样其他的字符串函数就可以处理了 */

        //printf("%s \n", buf); /* 使用printf函数输出 */

        //a[lines++][0]=buf;

        const char * split = "[tw]";
        char * p;
        p = strtok(buf, split);
        int y = 0;
        while (p != NULL) {
            a[lines][y] = p;
            printf("%s\n %d", p,y);
            p = strtok(NULL, split);
            y++;
        }
    }
//printf("%d",lines);

        int i, j;
    for (i = 0; i < lines; i++) {
        for (j = 0; j < 5; j++) {
            printf("%s-", a[j]);
        }
        printf("\n");
    }

    return 0;
}

[ 本帖最后由 askzhigang 于 2009-10-20 09:32 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-10-19 17:13 |只看该作者
楼主站在后面,大喊一声:“兄弟们,给我上!"

论坛徽章:
0
3 [报告]
发表于 2009-10-19 19:27 |只看该作者
最好把代码贴到这来
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP