相当于sprintf()的函数是否有要复制的最大字符数?

T.T*_*.T. 0 c c++

function(char* name)
{       
   char sql[50];
   sprintf(sql, "select %s;", name);
}
Run Code Online (Sandbox Code Playgroud)

什么是确保只有50个字符的名称被复制到sql的最佳方法,在这个案例名称大于sql可以容纳的名称?(带有N参数的sprintf?)

谢谢.

sth*_*sth 6

snprintf,也需要一个大小参数:

int snprintf(char *str, size_t size, const char *format, ...);
Run Code Online (Sandbox Code Playgroud)