函数原型:int snprintf(char* dest_str,size_t size,const char* format,...);
函数功能:先将可变参数 “…” 按照format的格式格式化为字符串,然后再将其拷贝至dest_str中。可以方便用于不同进制的转换。
注意事项:如果格式化后的字符串长度小于size,则将字符串全部拷贝至dest_str中,并在字符串结尾处加上‘\0’;
如果格式化后的字符串长度大于或等于size,则将字符串的(size-1)拷贝至dest_str中,然后在字符串结尾处加上’\0’.
若成功则返回预写入的字符串长度,若出错则返回负值。
例子:
#include <stdio.h> int main () {
char a[];
size_t i; i = snprintf(a, , "%012d", ); // 第 1 种情况
printf("i = %lu, a = %s\n", i, a); // 输出:i = 12, a = 000000012345 i = snprintf(a, , "%012d", ); // 第 2 种情况
printf("i = %lu, a = %s\n", i, a); // 输出:i = 12, a = 00000001 return ;
}
注意:
linux和windows下是不同的
linux下用的是snprintf();
而windows下用的是_snprintf();