如何创建格式化的const char *文字?

问题描述 投票:0回答:1
const char* strrep(listing list) {
//https://stackoverflow.com/q/4836534/9295513
char* retVal = //...
return retVal;
}

我有一个名为“列表”的结构。通过类似于printf或scanf的方法,有没有办法使我成为const char *文字,例如:("%d %d %s...", list->elem_one, list->elem_two, list->elem_three...)?我该怎么办?

c formatting char const
1个回答
0
投票

如果我没看错的话,您希望将其打印到缓冲区中,而不是打印到控制台或文件中。如果是这种情况,则需要使用sprintf()。这是sprintfcplusplus.com用法的示例:

#include <stdio.h>

int main ()
{
  char buffer [50];
  int n, a=5, b=3;
  n=sprintf (buffer, "%d plus %d is %d", a, b, a+b);
  printf ("[%s] is a string %d chars long\n",buffer,n);
  return 0;
}

请注意,sprintf会自动附加一个空终止符,但是要确保字符串的总长度可以适合给定的缓冲区,这仍然取决于您。

© www.soinside.com 2019 - 2024. All rights reserved.