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