前段时间看到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);
}
分享到:
相关推荐
函数 语法 功能 Len Len(string|varname) 返回字符串内字符的数目,或是存储一变量所需的字节数。 Trim Trim(string) 将字符串前后的空格去掉 Ltrim Ltrim(string) 将字符串前面的空格去掉 Rtrim Rtrim(string) ...
主要给大家介绍了关于如何在c++中实现字符串分割函数split的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用c++具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
本组建主要用于在程序中解析预先编写的类C... split: replace:字符串替换函数 printf: 这些函数基本与同名c函数相同 4、可预先编写一组脚本文件,编译时为每个文件指定ID,供调用时选择 5、字符串可直接赋值及相加
标准C语言写的字符串分割函数,靠输入的字符串来动态生成长度,效率更高,免积分下载
用c语言写的类似于split功能的函数实现! 对ini文件的读写操作
因为c++字符串没有split函数,所以字符串分割单词的时候必须自己手写,也相当于自己实现一个split函数吧!下面跟小编一起来看看如何实现这个功能。
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提供了一台可以在UNIX、Windows和...
【*】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-...
有时需要将信息保存在Excel、Txt中,并且需要判断去重操作,重复时进行覆盖,不同时则在文件尾部写入。该程序中split为字符串分割函数,利用fseek进行重写数据的定位操作。
消除C语言注释匹配的循环... 272 流畅运转的表达式... 277 引导匹配的工具... 277 引导良好的正则表达式速度很快... 279 完工... 281 总结:开动你的大脑... 281 第7章:Perl 283 作为语言组件的正则表达式....
如果想要强行转换变量类型,可以使用与C语言相同的函数settype()。 2.5 变量与常量 可能你已经注意到,变量都有一个美元符号($)的前缀。所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用...
本书全面系统地介绍了Red Hat Linux 6。全书共分为五个部分,包括35章和四个附录。第一部分为Red Hat Linux的介绍和安装;第二部分为服务配置;第三部分为系统管理;第四部分为Linux编程;第五部分为附录。...