函数原型:
int snprintf(char* dest_str,size_t size,const char* format,...);
函数功能:
- 先将可变参数 “
...
” 按照format
的格式格式化为字符串,然后再将其拷贝至dest_str
中。
头文件:
#include<stdio.h>
注意事项:
-
如果格式化后的字符串长度
小于size
,则将字符串全部拷贝至dest_str
中,并在字符串结尾处加上‘\0
’; -
如果格式化后的字符串长度
大于或等于size
,则将字符串的(size-1)
拷贝至dest_str
中,然后在字符串结尾处加上’\0
’. -
函数返回值是格式化字符串的长度。
使用示例:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void){
char dest_str[4096];
memset(dest_str,0,sizeof(dest_str));
char *s1 = "Linux程序设计";
int size = strlen(s1);
int year = 2014;
int month = 11;
int day = 6;
snprintf(dest_str,sizeof(dest_str),"字符串:%s\n长度是:%d\n今天是:%d年%d月%d日\n",s1,size,year,month,day);
printf("%s",dest_str);
return 0;
}
执行结果:
字符串:Linux程序设计
长度是:17
今天是:2019年9月24日