字符过滤函数

此函数用以过滤一行或者一段字符数组中的某个字符

例如:

/*对字符串:"1、     3DDimension                     2    20120102  1    864d3ef36a686b26bae2686fa60b6b36"过滤“ ”空字符,将分别得到:*/
		vecoL[index].id=result[0];  			 //1、
		vecoL[index].mdl=result[1];		//3DDimension
		vecoL[index].cnt=atoi(result[2]);	//2
		vecoL[index].deadTime=result[3];	//20120102  
		vecoL[index].version=result[4];		//1 
		vecoL[index].md5=result[5];		//864d3ef36a686b26bae2686fa60b6b36
char **result;
int n;
void stringSplit(char *source,char delim,char ***detstr,int* n) //(源字符串, 要过滤的字符, 过滤结果, )
{
	char src[512];
	strcpy(src,source);
	char **result;
	char splitchar[10];
	sprintf(splitchar,"%c",delim);
	int npos=1;
	for(int k=0;k<strlen(src)-1;k++)
	{
		if(src[k]==delim&&src[k+1]!=delim)
			npos++;
	}
	char **str=new char*[npos];

	char *tokenPtr=strtok(src,splitchar);
	int p=0;
	while(tokenPtr)
	{
		str[p]=tokenPtr;
		tokenPtr=strtok(NULL,splitchar);
		p++;
	}
	*n=npos;
	result = (char**) calloc (npos, sizeof (char*));
	for(int i=0;i<npos;i++)
	{
		result[i] =(char*) calloc (52, sizeof (char));
		sprintf(result[i],"%s",str[i]);
	}
	delete []str;
	*detstr=&result[0];
}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值