snprintf 的用法
时间: 2023-10-24 09:30:47 浏览: 111
使用C++实现的字符串拼接函数的实现及讨论.docx
snprintf 是一个函数,用于将格式化的数据写入字符串中。它的用法如下:
```c
#include <stdio.h>
int snprintf(char *str, size_t size, const char *format, ...);
```
参数说明:
- str:目标字符串的指针,用于存储格式化后的数据。
- size:目标字符串的大小,包括终止符'\0'。确保目标字符串足够大,以避免缓冲区溢出。
- format:格式化字符串,用于指定输出的格式。
- ...:可变参数列表,用于提供格式化字符串中的参数。
函数返回值:
- 返回写入目标字符串的字符数(不包括终止符'\0'),或者如果目标字符串被截断,则返回试图写入的字符数。
示例用法:
```c
#include <stdio.h>
int main() {
char str[20];
int num = 42;
float pi = 3.14159;
int len = snprintf(str, sizeof(str), "Number: %d, Pi: %.2f", num, pi);
printf("Formatted string: %s\n", str);
printf("Length: %d\n", len);
return 0;
}
```
输出:
```
Formatted string: Number: 42, Pi: 3.14
Length: 20
```
在上面的示例中,我们将格式化后的字符串写入了长度为 20 的目标字符串 `str` 中。`snprintf` 函数会根据提供的格式化字符串和参数将数据格式化后写入目标字符串。在这个示例中,格式化字符串中包含 `"%d"` 和 `"%.2f"`,分别对应整数和浮点数的格式化输出。`sizeof(str)` 用于获取目标字符串 `str` 的大小,以确保写入的数据不会超过其容量。最后,我们输出了格式化后的字符串和实际写入目标字符串的字符数。
阅读全文