像这样使用 sprintf 时
sprintf("%.40s",str);
我想给出一个类似 strlen(str) 的值来代替 40。我该怎么做?我尝试用 strlen(str) 替换 40,但没有用。给一个值,比如
#define len strlen(str)
并且使用 %.len 也不起作用,因为 %.len 用于“”。
最佳答案
使用*
字符。
sprintf(/* ... */, "%.*s", (int) strlen(str), str);
如果你使用C99,snprintf
也可以适用。
man printf (3)
The width is not specified in the format string, but as an additional integer value argument preceding the argument that has to be formatted.
关于c - %.s 的 sprintf 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13289315/