在C中查找格式化字符串的长度

时间:2014-11-13 13:53:14

标签: c strlen

我的应用程序中有以下功能:

 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中找到这样的设施来查找格式化字符串的长度。 谢谢!

1 个答案:

答案 0 :(得分:4)

snprintf怎么样?该函数不会写出比给定数字更多的字符,但如果有足够的空间,则返回它将创建的字符串的长度。

 int len = snprintf(NULL, 0, "Failed in file %s, at line number %d", file, line);