一、sprintf函数
1.该函数为字符串格式化命令
2.函数声明:
int sprintf(char *string, char *format [,argument,…]);
3.sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。解决这个问题,可以考虑使用 snprintf函数,该函数可对写入字符数做出限制
4.把格式化的数据写入某个字符串中
5.C 库函数 int sprintf(char *str, const char *format, …) 发送格式化输出到 str 所指向的字符串
6.sprintf跟printf在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出
二、snprintf函数
1.snprintf(),函数原型为int snprintf(char *str, size_t size, const char *format, …)
将可变参数 “…” 按照format的格式格式化为字符串,然后再将其拷贝至str中
三、snprintf函数的应用
#include <windows.h>
int main() {
char buffer[50];//用于存储字符串
char* s = "runoobcom";
unsigned int t_cnt = 100;
// 读取字符串并存储在 buffer 中
//int j = snprintf(buffer, 12, "mybuf:%s\\n", s);
while (1) {
int j = snprintf(buffer, 12, "mybuf:%d\\n", t_cnt++);
//相当于将mybuf:%d存储到buffer中,其中%d为t_cnt++的值,直接当字符串存入buffer
//j作为返回值,返回的是一共要写的字符个数mybuf:%d\\n的总字符个数
// 输出 buffer及字符数
printf("string:\\n%s\\ncharacter count = %d\\n", buffer, j);
Sleep(1);
}
return 0;
}




