C语言提供了强大的格式化输出的接口,可以输出到不同的文件或者字符串等,以sprintf和snprintf为例介绍一下
sprintf
格式化输出到字符串
函数签名
int sprintf(char *str, const char *format, ...);
与printf相比就是多了前面的char*参数,即输出的目标字符串
#include <stdio.h>
int main()
{
char buffer[64];
const char *s = "hello";
char name[64];
scanf("%s", name);
sprintf(buffer, "%s:%s", s, name);
printf("%s\n", buffer);
return 0;
}
运行结果如下
snprintf
格式化输出到字符串
函数签名
int snprintf(char *str, size_t size, const char *format, ...);
相比sprintf更加安全,可以防止缓冲区溢出
与sprintf相比多了一个参数n表示缓冲区大小
#include <stdio.h>
int main()
{
char buffer[64];
const char *s = "hello";
char name[64];
scanf("%s", name);
snprintf(buffer, sizeof buffer, "%s:%s", s, name);
printf("%s\n", buffer);
return 0;
}