字符串学习之去除头尾空格+接口设计-创新互联

1,计数字符串个数,被调函数按需分配内存,将处理后的字符串储存在分配的内存,返还该内存的首地址

成都网站设计、成都做网站的开发,更需要了解用户,从用户角度来建设网站,获得较好的用户体验。创新互联建站多年互联网经验,见的多,沟通容易、能帮助客户提出的运营建议。作为成都一家网络公司,打造的就是网站建设产品直销的概念。选择创新互联建站,不只是建站,我们把建站作为产品,不断的更新、完善,让每位来访用户感受到浩方产品的价值服务。
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;
}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前题目:字符串学习之去除头尾空格+接口设计-创新互联
网页路径:http://myzitong.com/article/djeioj.html