`
GaryPan
  • 浏览: 4021 次
  • 性别: 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语言版的

相关推荐

    Merge Sort 算法 C语言实现

    在C语言中,完整的Merge Sort实现会包括上述所有函数,并在主函数中调用它们。 ```c #include "x86_funcs.h" // 这个头文件可能包含一些辅助函数或宏定义 int main() { int arr[] = {...}; // 待排序的数组 int ...

    用C语言实现FFT算法的编写,可与DFT时间作比较

    5. **时间统计**:使用计时函数(如`clock()`或`gettimeofday()`)记录算法运行时间,以便与DFT和其它FFT实现进行比较。 实现过程中,需要注意以下几点: - C语言的复数表示:可以自定义结构体表示复数,包含实部...

    FFT.rar_C语言FFT_FFT 128点_c语言 fft_fft_fft的C语言实现

    通常,C语言的实现会将函数定义和声明放在".c"和".h"文件中,可能还有一个"main.c"文件用于测试和演示FFT算法。 在C语言中实现FFT,通常会涉及到以下知识点: 1. **离散傅里叶变换(DFT)**:DFT是将一个离散的...

    FIR低通滤波器C语言实现

    4. **滤波算法实现**:文档提到了几种不同的FIR滤波算法实现,包括`fir_basic`、`fir_shuffle`、`fir_circular`、`fir_split`、`fir_double_z`和`fir_double_h`。其中,`fir_basic`执行基本的FIR算法,而其他算法则...

    C语言实现动态分区分配方式的模拟实验报告附代码

    同时,还需要实现`findFit`函数来寻找合适的空闲分区,`split`函数进行分区切割,以及`merge`函数进行分区合并。 实验报告会详细阐述每个函数的设计思路和实现细节,同时通过实例演示其运行效果,分析可能出现的...

    排序算法-基于C语言实现的排序算法之MergeSort实现.zip

    C语言实现归并排序时,我们需要定义函数来实现分割、排序和合并的过程。主要的函数可能包括: - `merge()`:用于合并两个已排序的子序列。 - `mergeSort()`:递归地对数组进行分割和排序。 - `splitArray()`:根据...

    FFT的C语言版,c语言实现fft,C,C++源码.zip

    在C语言中实现FFT,可以帮助我们更好地理解其工作原理,并能高效地应用到实际项目中。 1. **FFT的基本概念** 快速傅里叶变换是离散傅里叶变换的一种优化算法,它将DFT的时间复杂度从O(N^2)降低到O(N log N),大大...

    基于C语言的FFT倒位序设计 DFT快速傅里叶算法

    在C语言中实现FFT,需要设计数据结构来存储输入序列、输出序列以及中间计算结果,同时定义函数来执行蝶形运算和倒位序排列。通常,会使用递归或者分治策略来构建FFT算法,这可能包括`split-radix`、`Cooley-Tukey`等...

    C语言基础面试题(03-字符串函数).docx

    - **问题4**: 自定义字符串函数,可以模仿`string.h`中的函数实现。 - **问题5**: `strtok`用于分割字符串,`sprintf`用于格式化输出,`getline`用于读取行。 - **问题6**: 逆序字符串,可以从后向前复制字符。 ...

    FIR滤波器在DSP的实现主程序C语言

    `fir_basic()`函数实现了基本的FIR滤波器,包括卷积运算和延迟线更新。 ##### 4. 循环FIR滤波器 ```c SAMPLE fir_circular(SAMPLE input, int ntaps, const SAMPLE h[], SAMPLE z[], int *p_state) { int ii, ...

    C语言文件分割程序

    标题 "C语言文件分割程序" 描述了一个使用C语言实现的特定功能——文件分割。C语言是一种基础且强大的编程语言,常用于系统级编程、软件开发以及底层数据处理。在这个项目中,它被用来创建一个文件分割工具,该工具...

    split_data.c_Split-data_

    在IT行业中,数据处理是一项至关重要的任务,而“split_data.c”这个程序可能是一个用于分割数据的C语言源代码文件。在这个场景下,“Split-data”标签进一步确认了这个程序的功能,即对数据进行拆分。下面我们将...

    Split function for c language

    标题中的"Split function for c language"指的是在C语言中实现的一种字符串分割函数。在C语言中,处理字符串通常涉及到字符数组和字符串操作函数,如`strtok`等。字符串分割函数是将一个字符串依据特定分隔符切割成...

    C语言CSV_Utile.rar

    《C语言实现CSV文件解析工具详解》 CSV(Comma Separated Values)文件是一种常见的数据存储格式,广泛用于数据交换和存储。对于学习C语言的人来说,掌握如何处理CSV文件是提高编程技能的重要步骤。本篇文章将详细...

    asp字符串处理函数大全

    ### ASP字符串处理函数详解 #### 1. Len 函数 - **语法**: `Len(string|varname)` - **功能**: 此函数返回一个字符串中的字符数量或...在实际应用中,结合不同的需求和场景,这些函数可以组合使用,实现更复杂的功能。

    用python重写了C语言经典100例

    4. **字符串**:Python的字符串是不可变的,提供了丰富的字符串操作函数,如`len()`、`split()`、`join()`等。 5. **文件操作**:Python使用内置的`open()`函数打开文件,`read()`、`write()`、`close()`进行读写...

    C语言C语言-C语言笔记-B站小甲鱼

    在C语言中,`printf`函数是用于格式化输出的常用函数。它允许用户指定输出格式,并将变量的值按照指定的格式输出。例如: ```c #include int main() { printf("Hello World!\n"); return 0; } ``` 这段代码会...

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

    字符串分割函数split在C++中的实现详解 在C++中,实现字符串分割函数split是一项常见的任务,然而,C++标准库中并没有提供这样一个函数,本文将详细介绍如何在C++中实现字符串分割函数split,并提供了一个完整的...

    TIDSP常用FFT算法研究与实现(C语言)

    在C语言中实现FFT,我们需要定义数据结构来存储输入序列,定义函数来执行倒位序和蝶形运算。以下是一个简化的步骤: - 初始化:设置输入序列、倒位序表、中间结果数组。 - 倒位序:根据倒位序规则重新排列输入序列...

Global site tag (gtag.js) - Google Analytics