C语言通过两个指针挖取字符串,并存入到二级指针中
2016-12-03 15:54
232 查看
#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; }
相关文章推荐
- C语言:将输入的字符串(char* cp)存入字符指针数组(char * spa[])
- C语言指针-------通过调用函数,完成两个数值的交换
- c语言两个字符串数组的连接 通过地址搞定
- C语言:通过指针对字符串进行拼接
- C语言通过指针和数组实现字符串倒序
- C语言——通过指针如何操作字符串——储存和运算
- 通过字符串逆序学习二级指针的三种内存模型 #################################################### #########################
- 编程两个小问题,C语言中如何读取一行字符串的问题和VS2008中调试出错一个问题
- C语言中的字符串与指针
- sky教了我一招,两个类之间相互访问,通过传递指针
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- 指针、数组、二级指针、指针数组与字符串
- 学C语言_指针_2_经典指针程序_互换两个数字
- 学习C语言_指针_4_通过指针使被调函数修改主调函数
- C语言编程练习(通过指针调换输入数字)
- c++指针学习笔记--交换两个字符串数据收藏
- C语言二级考试通过了,开心。
- C语言的两个小函数: 格式化当前时间和返回字符串中两个子字符串间的内容