//有一个字符串符合以下特征(”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; }