sprintf函式詳解

2021-08-26 01:50:44 字數 1543 閱讀 3817

sprintf 將字串格式化。

標頭檔案 #include

語法: int sprintf(string format, mixed [args]...);

返回值:字串長度(strlen)

1. 處理字元方向。-負號時表時從後向前處理。

2. 填空字元。 0 的話表示空格填 0;空格是內定值,表示空格就放著。

3. 字元總寬度。為最小寬度。

4. 精確度。指在小數點後的浮點數字數。

% 印出百分比符號,不轉換。

b 整數轉成二進位。

c 整數轉成對應的 ascii 字元。

d 整數轉成十進位。

f 倍精確度數字轉成浮點數。

o 整數轉成八進位。

s 整數轉成字串。

x 整數轉成小寫十六進製。

x 整數轉成大寫十六進製。

主要作用:

1、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 個位置,左對齊

2、浮點數的列印和格式控制是sprintf 的又一大常用功能,浮點數使用格式符」%f」控制,預設保

留小數點後6 位數字,比如:

sprintf(s, "%f", 3.1415926); //產生"3.141593"

但有時我們希望自己控制列印的寬度和小數字數,這時就應該使用:」%m.nf」格式,其中m 表

示列印的寬度,n 表示小數點後的位數。比如:

sprintf(s, "%10.3f", 3.1415626); //產生:" 3.142"

sprintf(s, "%-10.3f", 3.1415626); //產生:"3.142 "

sprintf(s, "%.3f", 3.1415626); //不指定總寬度,產生:"3.142"

3、連線字串

sprintf 的格式控制串中既然可以插入各種東西,並最終把它們「連成一串」,自然也就能夠連

接字串,從而在許多場合可以替代strcat,但sprintf 能夠一次連線多個字串(自然也可以同時

在它們中間插入別的內容,總之非常靈活)。比如:

char* who = "i";

char* whom = "china";

sprintf(s, "%s love %s.", who, whom); //產生:"i love china. "

sprintf函式詳解

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

sprintf 函式詳解

用處 把字串進行多種型別的格式化 用於 處理xml資料格式時,需要用到他來格式化等等 基本語法格式 sprintf 格式化型別 str1 str2 先看一下型別參照表,也就是要轉換成什麼型別的格式 這是轉換格式的型別參照表 先舉個最簡單的案例 str1 1234 echo sprintf hello...

C 中sprintf 函式的使用詳解

在將各種型別的資料構造成字串時,sprintf 的強大功能很少會讓你失望。由於sprintf 跟printf 在用法上幾乎一樣,只是列印的目的地不同而已,前者列印到字串中,後者則直接在命令列上輸出。這也導致sprintf 比printf 有用得多。sprintf 是個變參函式,定義如下 int sp...