sprintf是个变参函盐直树求斗态联松沿皇数,定义如下:
ints团里风规判跳妈printf(char*buffer,constchar*format[,argument]...);
除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,握顶王然训者停只想显然就在第二个参数:格式化字符串上。
printf和sprintf都使用格式化字符串来指定串的格式,在格式串内艺吧划款广端晚客赶波部使用一些以“%”开头的格式说明符(formatspecifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终
函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。
扩360问答展资料
sprintf的脚第一个参数是目的字符串世六司段冷,如果不指定这个参数,执行过程中出现"该程序产生非法操作,即将被关闭...."的提示。
因为C语言在进行字符串操作时不检查字守否井程代原的顾源符串的空间是否够大,所以可能会出现数组越界而导致程序崩溃的问题。
即使碰巧,程序没有出错,也不要这么用,因为早晚命铁杨则受七用会出错。所以一定要在调用s盟烈差物模继验何printf之前分配足够大的空间给buf。