我的应用程序中有以下功能:
void func(char *file, int line)
{
char stmt[150];
sprintf(stmt, "Failed in file %s, at line number %d", file, line);
}
这里我采用150字节的char数组(粗略猜测),而我需要找到我在sprintf()中给出的字符串的长度并获取该大小的数组。
请建议我在C中找到这样的设施来查找格式化字符串的长度。 谢谢!
答案 0 :(得分:4)
snprintf
怎么样?该函数不会写出比给定数字更多的字符,但如果有足够的空间,则返回它将创建的字符串的长度。
int len = snprintf(NULL, 0, "Failed in file %s, at line number %d", file, line);