字符串学习之去除头尾空格+接口设计
1,计数字符串个数,被调函数按需分配内存,将处理后的字符串储存在分配的内存,返还该内存的首地址
十载的兰西网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整兰西建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“兰西网站设计”,“兰西网站推广”以来,每个客户项目都认真落实执行。
int function (char *source, char **rec_mem)
因为内存是被调函数申请,因此可以节约控制内存的使用;
不好的地方是,在主调内存中可能造成内存泄露
int clear(char *string_in, char **string_after) //接口设计:一级指针输入源字符串,分配新空间存放后,二级指针返还地址 { //校验 int count = 0; int ret = 0; if (string_in == NULL ){ ret = -1; printf("err: string_in == NULL\n"); return ret; } char *str = string_in; char *str_rec; //计数 while (*(str) != '\0'){ if (*(str) != ' '){ count++; } str++; } str = string_in; //分配内存 *string_after = (char *)malloc(sizeof(count + 1); str_rec = *string_after; //处理,写入到新分配的内存 while (*(str) != '\0'){ if (*str != ' '){ *str_rec = *str; str_rec++; } str++; } //末尾添加结束 *str_rec = '\0'; return ret; }
2,主调函数提供源字符串,输出区内存块
int function(char *source_str, char *out_str_mem)
除外空格和结束符,一律转存,内存块末尾添加结束符
int dislodge_blank_from_str(char *source_str, char *output_buffer) { char *p = source_str; char *r = output_buffer; if (source_str == NULL){ printf("err:source_str == NULL\n"); return -1; } if (output_buffer == NULL){ printf("err:output_buffer == NULL\n"); return -1; } int i = 0; char temp[200] = {0}; while( (*p) != '\0'){ if ((*p) != ' '){ temp[i] = (*p); i++; } p++; } temp[++i] = '\0'; i = 0; while(temp[i] != '\0'){ (*r++) = temp[i++]; } *(++r) = '\0'; return 0; }
分享名称:字符串学习之去除头尾空格+接口设计
本文来源:http://scyanting.com/article/ppdgeg.html