常用函式總結 sprintf

2021-06-29 12:44:34 字數 1094 閱讀 4807

本文內容**

printf 可能是許多程式設計師在開始學習c 語言時接觸到的第二個函式(我猜第乙個是main),說

起來,自然是老朋友了,可是,你對這個老朋友了解多嗎?你對它的那個孿生兄弟sprintf 了解多

嗎?在將各種型別的資料構造成字串時,sprintf 的強大功能很少會讓你失望。

由於sprintf 跟printf 在用法上幾乎一樣,只是列印的目的地不同而已,前者列印到字串中,

後者則直接在命令列上輸出。這也導致sprintf 比printf 有用得多。所以本文著重介紹sprintf,有時

也穿插著用用pritnf。

sprintf 是個變參函式,定義如下:

int sprintf( char *buffer, const char *format [, argument] ... );

除了前兩個引數型別固定外,後面可以接任意多個引數。而它的精華,顯然就在第二個引數:

格式化字串上。

printf 和sprintf 都使用格式化字串來指定串的格式,在格式串內部使用一些以「%」開頭的

格式說明符(format specifications)來佔據乙個位置,在後邊的變參列表中提供相應的變數,最終

函式就會用相應位置的變數來替代那個說明符,產生乙個呼叫者想要的字串。

格式化數字字串

sprintf 最常見的應用之一莫過於把整數列印到字串中,所以,spritnf 在大多數場合可以替代

itoa。如:

//把整數123 列印成乙個字串儲存在s 中。

sprintf(s, "%d", 123); //產生"123"

可以指定寬度,不足的左邊補空格:

sprintf(s, "%8d%8d", 123, 4567); //產生:" 123 4567"

當然也可以左對齊:

sprintf(s, "%-8d%8d", 123, 4567); //產生:"123 4567"

也可以按照16 進製列印:

sprintf(s, "%8x", 4567); //小寫16 進製,寬度佔8 個位置,右對齊

sprintf(s, "%-8x", 4568); //大寫16 進製,寬度佔8 個位置,左對齊

fgets函式 sprintf函式

char fgets char restrict s,int n,file restrict stream 第乙個引數為資料存放的陣列,第二個引數為最大長度,第三個引數為輸入源,我們從鍵盤讀入,引數為stdin 可以看到fgets 讀取的字串長度包含了結尾的 0 遍歷陣列時要注意下標越界。strle...

sprintf函式詳解

printf 可能是許多程式設計師在開始學習c 語言時接觸到的第二個函式 我猜第乙個是main 說 起來,自然是老朋友了,可是,你對這個老朋友了解多嗎?你對它的那個孿生兄弟sprintf 了解多 嗎?在將各種型別的資料構造成字串時,sprintf 的強大功能很少會讓你失望。由於sprintf 跟pr...

sprintf函式詳解

sprintf 將字串格式化。標頭檔案 include 語法 int sprintf string format,mixed args 返回值 字串長度 strlen 1.處理字元方向。負號時表時從後向前處理。2.填空字元。0 的話表示空格填 0 空格是內定值,表示空格就放著。3.字元總寬度。為最小...