Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1753338
  • 博文数量: 600
  • 博客积分: 10581
  • 博客等级: 上将
  • 技术积分: 6205
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 10:13
文章分类
文章存档

2016年(2)

2015年(9)

2014年(8)

2013年(5)

2012年(8)

2011年(36)

2010年(34)

2009年(451)

2008年(47)

分类: C/C++

2008-11-18 10:41:36

int split_str(char *buf,int length,int number,...)
{
    va_list arglist;
    int i = 0;
    int num = 0;
    char tmpstr[1024];
    char msg[100];
    char *ptr;
    va_start(arglist, number);
    if( ((strlen(buf)+length-1)/length) > number)
    {
        sprintf(msg,"实际分割数[%d]大于要求分割数[%d]!",
            (strlen(buf)+length-1)/length,number);
        ts(msg);
        return(-1);
    }
  
    memset(tmpstr,'\0',sizeof(tmpstr));
    while(*buf!='\0')
    {
        if((*buf & 0x80) == 0x80 )  /*是否为汉字*/
        {
            tmpstr[i++]=*buf;
            buf++;
            tmpstr[i++]=*buf;
            buf++;
        }
        else
        {
            tmpstr[i++]=*buf;
            buf++;
        }
        if(i>=length)
        {
            strcpy (va_arg(arglist, char *),tmpstr);
            memset(tmpstr,'\0',sizeof(tmpstr));
            i=0;
            num++;
        }
    }
    if(num        strcpy (va_arg(arglist, char *),tmpstr);
 
    va_end(arglist);
    return 0;
}
 
阅读(1565) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~