sprintf 是個變參函數,定義如下:
int sprintf( char *buffer, const char *format [, argument] ... );
除了前兩個參數類型固定外,後面可以接任意多個參數。而它的精華,顯然就在第二個參數:格式化字符串上。
printf 和sprintf 都使用格式化字符串來指定串的格式,在格式串內部使用壹些以“%”開頭的格式說明符(format specifications)來占據壹個位置,在後邊的變參列表中提供相應的變量,最終
函數就會用相應位置的變量來替代那個說明符,產生壹個調用者想要的字符串。
sprintf的第壹個參數是目的字符串
sprintf指的是字符串格式化命令,函數聲明為 int sprintf(char *string, char *format [,argument,...]);,主要功能是把格式化的數據寫入某個字符串中,即發送格式化輸出到 string 所指向的字符串。
使用sprintf 對於寫入buffer的字符數是沒有限制的,這就存在了buffer溢出的可能性。解決這個問題,可以考慮使用?snprintf函數,該函數可對寫入字符數做出限制。