前段时间看到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);
}
分享到:
相关推荐
在C语言中,完整的Merge Sort实现会包括上述所有函数,并在主函数中调用它们。 ```c #include "x86_funcs.h" // 这个头文件可能包含一些辅助函数或宏定义 int main() { int arr[] = {...}; // 待排序的数组 int ...
5. **时间统计**:使用计时函数(如`clock()`或`gettimeofday()`)记录算法运行时间,以便与DFT和其它FFT实现进行比较。 实现过程中,需要注意以下几点: - C语言的复数表示:可以自定义结构体表示复数,包含实部...
通常,C语言的实现会将函数定义和声明放在".c"和".h"文件中,可能还有一个"main.c"文件用于测试和演示FFT算法。 在C语言中实现FFT,通常会涉及到以下知识点: 1. **离散傅里叶变换(DFT)**:DFT是将一个离散的...
4. **滤波算法实现**:文档提到了几种不同的FIR滤波算法实现,包括`fir_basic`、`fir_shuffle`、`fir_circular`、`fir_split`、`fir_double_z`和`fir_double_h`。其中,`fir_basic`执行基本的FIR算法,而其他算法则...
同时,还需要实现`findFit`函数来寻找合适的空闲分区,`split`函数进行分区切割,以及`merge`函数进行分区合并。 实验报告会详细阐述每个函数的设计思路和实现细节,同时通过实例演示其运行效果,分析可能出现的...
C语言实现归并排序时,我们需要定义函数来实现分割、排序和合并的过程。主要的函数可能包括: - `merge()`:用于合并两个已排序的子序列。 - `mergeSort()`:递归地对数组进行分割和排序。 - `splitArray()`:根据...
在C语言中实现FFT,可以帮助我们更好地理解其工作原理,并能高效地应用到实际项目中。 1. **FFT的基本概念** 快速傅里叶变换是离散傅里叶变换的一种优化算法,它将DFT的时间复杂度从O(N^2)降低到O(N log N),大大...
在C语言中实现FFT,需要设计数据结构来存储输入序列、输出序列以及中间计算结果,同时定义函数来执行蝶形运算和倒位序排列。通常,会使用递归或者分治策略来构建FFT算法,这可能包括`split-radix`、`Cooley-Tukey`等...
- **问题4**: 自定义字符串函数,可以模仿`string.h`中的函数实现。 - **问题5**: `strtok`用于分割字符串,`sprintf`用于格式化输出,`getline`用于读取行。 - **问题6**: 逆序字符串,可以从后向前复制字符。 ...
`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语言是一种基础且强大的编程语言,常用于系统级编程、软件开发以及底层数据处理。在这个项目中,它被用来创建一个文件分割工具,该工具...
在IT行业中,数据处理是一项至关重要的任务,而“split_data.c”这个程序可能是一个用于分割数据的C语言源代码文件。在这个场景下,“Split-data”标签进一步确认了这个程序的功能,即对数据进行拆分。下面我们将...
标题中的"Split function for c language"指的是在C语言中实现的一种字符串分割函数。在C语言中,处理字符串通常涉及到字符数组和字符串操作函数,如`strtok`等。字符串分割函数是将一个字符串依据特定分隔符切割成...
《C语言实现CSV文件解析工具详解》 CSV(Comma Separated Values)文件是一种常见的数据存储格式,广泛用于数据交换和存储。对于学习C语言的人来说,掌握如何处理CSV文件是提高编程技能的重要步骤。本篇文章将详细...
### ASP字符串处理函数详解 #### 1. Len 函数 - **语法**: `Len(string|varname)` - **功能**: 此函数返回一个字符串中的字符数量或...在实际应用中,结合不同的需求和场景,这些函数可以组合使用,实现更复杂的功能。
4. **字符串**:Python的字符串是不可变的,提供了丰富的字符串操作函数,如`len()`、`split()`、`join()`等。 5. **文件操作**:Python使用内置的`open()`函数打开文件,`read()`、`write()`、`close()`进行读写...
在C语言中,`printf`函数是用于格式化输出的常用函数。它允许用户指定输出格式,并将变量的值按照指定的格式输出。例如: ```c #include int main() { printf("Hello World!\n"); return 0; } ``` 这段代码会...
字符串分割函数split在C++中的实现详解 在C++中,实现字符串分割函数split是一项常见的任务,然而,C++标准库中并没有提供这样一个函数,本文将详细介绍如何在C++中实现字符串分割函数split,并提供了一个完整的...
在C语言中实现FFT,我们需要定义数据结构来存储输入序列,定义函数来执行倒位序和蝶形运算。以下是一个简化的步骤: - 初始化:设置输入序列、倒位序表、中间结果数组。 - 倒位序:根据倒位序规则重新排列输入序列...