无题(四):分割字符串(运用二维数组)

//有一个字符串符合以下特征(”abcdef, acccd, eeee, aaaa, e3eeeee, sssss, ";),要求写一个函数(接口),输出以下结果
//1)	以逗号分割字符串,形成二维数组,并把结果传出;
//2)	把二维数组行数运算结果也传出。
//strchr(“aa, aa”, ’, ’);
//请自己定义一个接口(函数)。
//要求1:能正确表达功能的要求,定义出接口(函数);
//要求2:正确实现接口(函数),并实现功能;
//要求3:编写正确的测试用例。
int splitStr(char* src, char out_arr[10][30], int* count)
{
	int ret = 0;//定义返回值,并初始化为正常状态
	int i = 0;
	//函数参数检测
	if (src == NULL || out_arr == NULL || count == NULL)
	{
		ret = -1;//错误状态
		printf("src == NULL || out_arr == NULL || count == NULL err %d \n",ret);
		return ret;
	}
	int ncount = 0; //记录分割的字符串个数
	char* pSrc = src;  //定义指针指向输入字符串的起始位置
	char* pTemp = pSrc; //定义中间指针指向输入字符串的起始位置
	while (*pSrc)
	{
		pSrc = strstr(pSrc,",");//将pSrc指针指向字符串中的第一个逗号处
		strncpy(out_arr[i], pTemp, (pSrc - pTemp));//将切割的字符串放到二位数组中
		i++; //数组下表自加
		pTemp = pSrc = pSrc + 1; //将pTemp ,pSrc指针指向逗号后的第一个字符
		ncount++;

	}
	*count = ncount;
	return ret;
}
int printArr(char arr[10][30], int num)
{
	int ret = 0;
	int i = 0;
	if (arr == NULL || (num <  0))
	{
		ret = -1;
		printf("arr == NULL || (num < = 0) erro %d,\n",ret);
		return ret;
	}
	
	for (i = 0; i < num; i++)
	{
		printf("%s\n",arr[i]);
	}
	return ret;
}
int main()
{
	char* my_arr =  "abcdef,acccd,";
	char out_arr[10][30] = {0};
	int count = 0;
	splitStr(my_arr, out_arr, &count);
	printArr(out_arr,2);
	return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值