运维开发网

用c语言根据可变参数合成字符串的实现代码

运维开发网 https://www.qedev.com 2020-02-13 08:59 出处:网络 作者: 网络整理
本篇文章是对用c语言根据可变参数合成字符串的方法进行了详细的分析介绍,需要的朋友参考下

写代码时, 经常需要根据参数值得到一特定的字符串. 每次都调用vsprintf, malloc很烦. 以下是一个

实现了此功能的接口.

复制代码 代码如下:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <stdarg.h>

char *xm_vsprintf_ex(int len, char *fmt, ... );

int main(int argc, char *argv[])

{

 char *ptr;

 ptr = xm_vsprintf_ex(100, "%s-%s-%s", "lias", "dzq", "lvo");

 printf("%s\n", ptr);

 free(ptr);

 return 0;

}

char *xm_vsprintf_ex(int len, char *fmt, ... )

{

 va_list ap;

 char *ptr;

 ptr = (char *)malloc(len * sizeof(char));

 if(ptr == NULL)

 {

  fprintf(stderr, "malloc failed\n");

  return NULL;

 }

 memset(ptr, 0, len);

 va_start(ap, fmt);

 vsprintf(ptr, fmt, ap);

 va_end(ap);

 ptr[len-1] = '\0';

 return ptr;

}

用起来还是比较爽的.

0

精彩评论

暂无评论...
验证码 换一张
取 消