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...