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

来源:互联网 发布:qq纯真ip数据库 编辑:程序博客网 时间:2024/05/18 02:41
#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;//logprintf("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;}


0 0
原创粉丝点击