//有一个字符串符合以下特征(”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;
}
无题(四):分割字符串(运用二维数组)
最新推荐文章于 2021-07-15 14:18:34 发布