/* 题目55: 有一个字符串符合以下特征(”abcdef,acccd,eeee,aaaa,e3eeeee,sssss,";),要求写一个函数(接口),输出以下结果 1) 以逗号分割字符串,形成二维数组,并把结果传出; 2) 把二维数组行数运算结果也传出。 strchr(“aa,aa”,’,’ ); 请自己定义一个接口(函数)。 要求1:能正确表达功能的要求,定义出接口(函数)(30分); 要求2:正确实现接口(函数),并实现功能(40分); 要求3:编写正确的测试用例。(30分)。 */ //解析字符串 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> //删除空格 int removespace(const char *pin, char *pout); //解析字符串 int analysistr(const char *pin, char bufstr[8][20], char *requirc); //打印字符数组 int printfarr09(char parr[8][20]); void main(){ //原始字符串(非','结尾) const char *p = "abcdef,acccd,eeee,aaaa,e3eeeee,sskss,werertw"; //原始字符串(','结尾) const char *p2 = "abcdef,acccd,eeee,aaaa,e3eeeee,sskss,"; //新字符串数组 char bufstr[8][20] = {0}; //新字符串数组 char bufstr2[8][20] = { 0 }; //定义以何种字符作为截取字符 char ch = ','; analysistr(p, bufstr, &ch); analysistr(p2, bufstr2, &ch); //打印新字符数组 printfarr09(bufstr); system("pause"); } //打印二维数组 int printfarr09(char parr[8][20]){ int ERRO_MSG = 0; if (parr == NULL) { ERRO_MSG = 1; printf("parr==NULL erro msg:%d", ERRO_MSG); return ERRO_MSG; } //打印二维数组 for (int i = 0; i < 8; i++) { printf("%s ", parr[i]); } return ERRO_MSG; } //删除空格 int removespace(const char *pin, char *pout){ int ERRO_MSG = 0; if (pin == NULL) { ERRO_MSG = 1; printf("pin==NULL erro msg:%d ", ERRO_MSG); return ERRO_MSG; } if (pout == NULL) { ERRO_MSG = 2; printf("pout==NULL erro msg:%d ", ERRO_MSG); return ERRO_MSG; } while (*pin != '