c语言实现java中string.append功能

c语言中没有像java的string类中append那样的功能,取而代之的有一个strcat函数,但是也不是太舒服,下面就提供一个类似append的实现,用起来比较舒服。

char *str_append(char *str,const int len,...){
	if(str == NULL || len < 1){
		return NULL;
	}
	va_list args;
	char *p_arg = NULL;
	int i;
	int cur_len = 0;
	va_start(args, len);
	for(i = 0;i < len;i++){
		p_arg = va_arg(args,char *);
		if(p_arg != NULL){
			strcpy(str + cur_len,p_arg);
			cur_len += strlen(p_arg);
		}
	}
	va_end(args);
	return str;
}

这个函数用起来比较简单,第一个参数是存储字符串的buffer,第二个参数是要拼接的字符串的个数,第三个开始是需要拼接的字符串。

Example:

char path [1024];
memset(path,0,sizeof(path));

str_append(path, 1,  "/");

str_append(path, 2,  "/","root");

str_append(path, 3,  "/","root","/node1");

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>