snprintf()

snprintf()

in sn prin

基本介紹


int snprintf(char *str, size_t size, const char *format, ...);
將可變個參數(...)按照format格式化成字元串,然後將其複製到str中
(1) 如果格式化后的字元串長度 < size,則將此字元串全部複製到str中,並給其後添加一個字元串結束符('\0');
(2) 如果格式化后的字元串長度 => size,則只將其中的(size-1)個字元複製到str中,並給其後添加一個字元串結束符('\0')
函數返回值:若成功則返回欲寫入的字元串長度,若出錯則返回負值。
strcpy() sprintf() strcat() 存在安全隱患,其對應的安全版為:
strncpy() snprintf() strncat()
snprintf(s, 100, "%.*S", 3, "abcd");
s的值為abc
%.*s 表示有兩項,第一項指定了長度,第二項則是%s的內容,所以取前三位