C 库函数 - snprintf()
描述
C 库函数 int snprintf(char *str, size_t size, const char *format, ...) 设将可变参数(...)按照 format 格式化成字符串,并将字符串复制到 str 中,size 为要写入的字符的最大数目,超过 size 会被截断,最多写入 size-1 个字符。
与 sprintf() 函数不同的是,snprintf() 函数提供了一个参数 size,可以防止缓冲区溢出。如果格式化后的字符串长度超过了 size-1,则 snprintf() 只会写入 size-1 个字符,并在字符串的末尾添加一个空字符( )以表示字符串的结束。
声明
下面是 snprintf() 函数的声明。
int snprintf ( char * str, size_t size, const char * format, ... );
参数
- str -- 目标字符串,用于存储格式化后的字符串的字符数组的指针。
- size -- 字符数组的大小。
- format -- 格式化字符串。
- ... -- 可变参数,可变数量的参数根据 format 中的格式化指令进行格式化。
返回值
snprintf() 函数返回写入字符数组的字符数,不包括字符串的结束符。如果格式化后的字符串的长度大于等于 size,则返回应该被写入字符数组的字符数,但不包括字符串的结束符。
-
1、如果格式化后的字符串长度小于 size,则会把字符串全部复制到 str 中,并给其后添加一个字符串结束符