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;
}