`
GaryPan
  • 浏览: 3918 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

c语言实现split函数

阅读更多
前段时间看到je上一个c++实现split函数,恰好项目需要写了一个c语言的split方法,欢迎大家提出意见,下面是代码
char** cSplit(char *string, char spliter)
{
    //分割后字符串数量
    int num = 0;
    //计算数量
    int i = 0;
    int size = strlen(string);
    for(; i < size; i++)
    {
        //
        if((string[i] != spliter) && (string[i + 1] == spliter || string[i + 1] == '\0')) num++;
    }
    //分配空间
    char **cStrings = (char**)malloc(sizeof(char*) * (num + 1));
    int j = 0;
    for(; j <= num; j++)
    {
        //初始化指针数组
        cStrings[j] = 0;	
    }
    //保存分割后字符串
    char *buffer = (char*)malloc(sizeof(char) * (size + 1));
    int l = 0;
    for(; l < size + 1; l++)
    {
        buffer[l] = 0;
    }
    int counter = 0;
    int k = 0;
    for(; k < size; k++)
    {
        if(string[k] != spliter)
        {
            int i = 0;
            int j = k;
            while(string[j] != spliter && string[j] != '\0')
            {
                buffer[i++] = string[j++];
            }
            buffer[i] = '\0';
            cStrings[counter] = (char*)malloc(sizeof(char) * i);
            strcpy(cStrings[counter++],buffer);
            k = k + i;
        }
    }
    free(buffer);
    return cStrings;
}

/**
*调用此方法释放cSplit分配的内存空间
*/
void freeStringsMemory(char **strings)
{
	//	
	int k = 0;
	for(; ; k++)
	{
		//
		if(strings[k] != 0) free(strings[k]);
		else break;
	}
	free(strings);
}
分享到:
评论
2 楼 xeon601 2011-04-07  
为什么要自己实现?
C/C++里不是有strtok函数么?
#include <string.h>
char * strtok (char * str, const char * delimiters);
1 楼 刃之舞 2010-06-04  
你可以直接翻翻java里源码的String类的split方法,然后改成C语言版的

相关推荐

    asp字符串处理函数大全

    函数 语法 功能 Len Len(string|varname) 返回字符串内字符的数目,或是存储一变量所需的字节数。 Trim Trim(string) 将字符串前后的空格去掉 Ltrim Ltrim(string) 将字符串前面的空格去掉 Rtrim Rtrim(string) ...

    如何在c++中实现字符串分割函数split详解

    主要给大家介绍了关于如何在c++中实现字符串分割函数split的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用c++具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    类C语言的脚本解析执行(使用C++语言编写)20080625

    本组建主要用于在程序中解析预先编写的类C... split: replace:字符串替换函数 printf: 这些函数基本与同名c函数相同 4、可预先编写一组脚本文件,编译时为每个文件指定ID,供调用时选择 5、字符串可直接赋值及相加

    Split function for c language

    标准C语言写的字符串分割函数,靠输入的字符串来动态生成长度,效率更高,免积分下载

    ini文件读写

    用c语言写的类似于split功能的函数实现! 对ini文件的读写操作

    c++如何分割字符串示例代码

    因为c++字符串没有split函数,所以字符串分割单词的时候必须自己手写,也相当于自己实现一个split函数吧!下面跟小编一起来看看如何实现这个功能。

    shell 编程(中文)[pdf]

    011_合并与分割_sort_join_uniq_cut_paste_split.pdf 012_tr的用法.pdf 013_登录环境.pdf 014_环境和shell变量.pdf 015_引号.pdf 016_基础shell编程_shell脚本介绍.pdf 017_条件测试_test_expr.pdf 018_控制流结构_...

    Tcl_TK编程权威指南pdf

    该函数库实现了基本的解释器,它有一套实现变量、流程控制和过程的核心脚本命令,而且还有一组用来存取操作系统服务以运行其他程序、存取文件系统和使用网络套接字的命令。Tcl和Tk提供了一台可以在UNIX、Windows和...

    python pandas 官网文档

    【*】16-Group By: split-apply-combine 【*】17-Merge, join, and concatenate 【*】18-Reshaping and Pivot Tables 【*】19-Time Series / Date functionality 【*】20-Time Deltas 21-Categorical Data 【*】22-...

    c 文件读写代码

    有时需要将信息保存在Excel、Txt中,并且需要判断去重操作,重复时进行覆盖,不同时则在文件尾部写入。该程序中split为字符串分割函数,利用fseek进行重写数据的定位操作。

    精通正则表达式~~~

    消除C语言注释匹配的循环... 272 流畅运转的表达式... 277 引导匹配的工具... 277 引导良好的正则表达式速度很快... 279 完工... 281 总结:开动你的大脑... 281 第7章:Perl 283 作为语言组件的正则表达式....

    PHP基础教程 是一个比较有价值的PHP新手教程!

    如果想要强行转换变量类型,可以使用与C语言相同的函数settype()。 2.5 变量与常量 可能你已经注意到,变量都有一个美元符号($)的前缀。所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用...

    RED HAT LINUX 6大全

    本书全面系统地介绍了Red Hat Linux 6。全书共分为五个部分,包括35章和四个附录。第一部分为Red Hat Linux的介绍和安装;第二部分为服务配置;第三部分为系统管理;第四部分为Linux编程;第五部分为附录。...

Global site tag (gtag.js) - Google Analytics