Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104842
  • 博文数量: 4
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 230
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-04 09:59
文章分类

全部博文(4)

文章存档

2008年(4)

我的朋友

分类: C/C++

2008-03-18 10:25:23

写了一个小函数,分割字符串的,函数说明:
  1、参数说明: 第一个参数是被分割的字符串, 第二个是分割符,第三个是子串的编号,从0起 ;第四个参数是子串的结果。
  2、返回值: 正常情况下返回子串的长度,-1为查询不到。
  3、函数功能说明:利用分隔符,分割字符串 , 取当中的第n个子串,子串编号从0开始。
  例如:  abd|123|ded|56688||
   利用此函数第0个子串为abd,函数返回值为3 ; 第3个子串为56688,函数返回值为5;第4个子串为空,函数返回值为0 , 第5个子串为空,函数返回值为-1。
int split_string( char *splited_str , char split_char ,
                  int filed_index , char *result_str )
{
    char *v_src_p , *v_result_p;
    int  result_str_len ;
    v_src_p    = splited_str ;
    v_result_p = result_str ;
    while( filed_index > 0 )
    {
        v_src_p = strchr( v_src_p , split_char );
        if( v_src_p == NULL )
        {
            return -1 ;
        }
        else
        {
            v_src_p ++ ;
            filed_index -- ;
        }
    }
    result_str_len = 0 ;
    while( *v_src_p != 0 )
    {
        if( *v_src_p == split_char )
        {
            *(v_result_p+result_str_len) = 0 ;
            return result_str_len ;
        }
        else
        {
            *(v_result_p+result_str_len) = *v_src_p;
            v_src_p ++ ;
            result_str_len ++ ;
        }
    }
    return result_str_len ;
}
阅读(2885) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~