C语言通过两个指针挖取字符串,并存入到二级指针中

    xiaoxiao2021-12-14  39

    #include "stdio.h" #include "stdlib.h" #include "string.h" /* 有一个字符串符合以下特征(”abcdef,acccd,eeee,aaaa,e3eeeee,sssss,";),要求写一个函数(接口),输出以下结果 1)以逗号分割字符串,形成二维数组,并把结果传出; 2)把二维数组行数运算结果也传出。 strchr(“aa,aa”,’,’ ); 请自己定义一个接口(函数)。 要求1:能正确表达功能的要求,定义出接口(函数)(30分); 要求2:正确实现接口(函数),并实现功能(40分); 要求3:编写正确的测试用例。(30分)。 */ int split_str(char *input, char out[10][30],char c,int *length) { int ret = 0; char *in = input; int i = 0; //拷贝memcpy()中第三个参数的差值 int tmp = 0; //空参数异常处理 if (!input || !out || !length) { ret = -1; //log printf("func split_str(char *input, char output[10][30],int *length) err:%d\n", ret); return ret; } //定义两个指针指向input的首地址 char *front = in; char *rear = in; //char* in:abcdef,acccd,eeee,aaaa,e3eeeee,sssss, do { rear = strchr(rear, c); if (rear) { tmp = rear - front; memcpy(out[i], front, tmp); //++ i++; //前指针后移一个字符串的长度 front = rear + 1; //跳过char c,读取下一个字符 rear++; } else { break; } } while (*rear!='\0'); *length = i; return ret; } int main() { int vt = 0; char str[1024] = "abcdef,acccd,eeee,aaaa,e3eeeee,sssss,"; char receive[10][30] = { 0 }; char c = ','; int len = 0; vt = split_str(str,receive,c,&len); int i; for (i = 0; i < len; i++) { printf("%s\n", receive[i]); } system("pause"); return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-969592.html

    最新回复(0)