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...)
?我该怎么办?
如果我没看错的话,您希望将其打印到缓冲区中,而不是打印到控制台或文件中。如果是这种情况,则需要使用sprintf()
。这是sprintf
中cplusplus.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
会自动附加一个空终止符,但是要确保字符串的总长度可以适合给定的缓冲区,这仍然取决于您。