日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言sprintf函数(发送格式化输出到 str 所指向的字符串)(format 标签属性)(字符串拼接)(数字转字符串、浮点数转字符串)

發布時間:2025/3/20 编程问答 24 豆豆

C語言函數 snprintf()(發送有限字符格式化輸出到 str 所指向的字符串)(字符串拼接)

文章目錄

    • 描述
    • 聲明
    • 參數
    • 返回值
    • 實例
    • 20220124 上面的實例太簡陋了,我們拓展一下
      • 實例1,字符串拼接
    • 20220403 浮點數轉字符串

描述

C 庫函數 int sprintf(char *str, const char *format, …) 發送格式化輸出到 str 所指向的字符串。

聲明

下面是 sprintf() 函數的聲明。

int sprintf(char *str, const char *format, ...)

參數

str – 這是指向一個字符數組的指針,該數組存儲了 C 字符串。
format – 這是字符串,包含了要被寫入到字符串 str 的文本。它可以包含嵌入的 format 標簽,format 標簽可被隨后的附加參數中指定的值替換,并按需求進行格式化。format 標簽屬性是 %[flags][width][.precision][length]specifier,具體講解如下:

specifier(說明符) 輸出 c 字符 d 或 i 有符號十進制整數 e 使用 e 字符的科學科學記數法(尾數和指數) E 使用 E 字符的科學科學記數法(尾數和指數) f 十進制浮點數 g 自動選擇 %e 或 %f 中合適的表示法 G 自動選擇 %E 或 %f 中合適的表示法 o 有符號八進制 s 字符的字符串 u 無符號十進制整數 x 無符號十六進制整數 X 無符號十六進制整數(大寫字母) p 指針地址 n 無輸出 % 字符 flags(標識) 描述 - 在給定的字段寬度內左對齊,默認是右對齊(參見 width 子說明符)。 + 強制在結果之前顯示加號或減號(+-),即正數前面會顯示 + 號。默認情況下,只有負數前面會顯示一個 - 號。 (space) 如果沒有寫入任何符號,則在該值前面插入一個空格。 # 與 o、x 或 X 說明符一起使用時,非零值前面會分別顯示 00x 或 0X。與 e、E 和 f 一起使用時,會強制輸出包含一個小數點,即使后邊沒有數字時也會顯示小數點。默認情況下,如果后邊沒有數字時候,不會顯示顯示小數點。與 g 或 G 一起使用時,結果與使用 e 或 E 時相同,但是尾部的零不會被移除。 0 在指定填充 padding 的數字左邊放置零(0),而不是空格(參見 width 子說明符)。 width(寬度) 描述 (number) 要輸出的字符的最小數目。如果輸出的值短于該數,結果會用空格填充。如果輸出的值長于該數,結果不會被截斷。 * 寬度在 format 字符串中未指定,但是會作為附加整數值參數放置于要被格式化的參數之前。 .precision(精度) 描述 .number 對于整數說明符(d、i、o、u、x、X):precision 指定了要寫入的數字的最小位數。如果寫入的值短于該數,結果會用前導零來填充。如果寫入的值長于該數,結果不會被截斷。精度為 0 意味著不寫入任何字符。對于 e、E 和 f 說明符:要在小數點后輸出的小數位數。對于 g 和 G 說明符:要輸出的最大有效位數。對于 s: 要輸出的最大字符數。默認情況下,所有字符都會被輸出,直到遇到末尾的空字符。對于 c 類型:沒有任何影響。當未指定任何精度時,默認為 1。如果指定時不帶有一個顯式值,則假定為 0.* 精度在 format 字符串中未指定,但是會作為附加整數值參數放置于要被格式化的參數之前。 length(長度) 描述 h 參數被解釋為短整型或無符號短整型(僅適用于整數說明符:i、d、o、u、x 和 X)。 l 參數被解釋為長整型或無符號長整型,適用于整數說明符(i、d、o、u、x 和 X)及說明符 c(表示一個寬字符)和 s(表示寬字符字符串)。 L 參數被解釋為長雙精度型(僅適用于浮點數說明符:e、E、f、g 和 G)。

附加參數 – 根據不同的 format 字符串,函數可能需要一系列的附加參數,每個參數包含了一個要被插入的值,替換了 format 參數中指定的每個 % 標簽。參數的個數應與 % 標簽的個數相同。

返回值

如果成功,則返回寫入的字符總數,不包括字符串追加在字符串末尾的空字符。如果失敗,則返回一個負數。

實例

下面的實例演示了 sprintf() 函數的用法。

#include <stdio.h> #include <math.h>int main() {char str[80];sprintf(str, "Pi 的值 = %f", M_PI);puts(str);return(0); }

讓我們編譯并運行上面的程序,這將產生以下結果:

Pi 的值 = 3.141593

參考文章:C 庫函數 - sprintf()

20220124 上面的實例太簡陋了,我們拓展一下

實例1,字符串拼接

#pragma warning(disable : 4996) #include <stdio.h> #include <stdlib.h> int main(void) {char buffer[100];sprintf(buffer, "%d, %f, %s", 123, 123.0, "Hello world !");printf("%s\n", buffer);return 0; }

在VS上編譯運行:

123, 123.000000, Hello world !F:\Arnold_Test\20211124-2_TEST\TEST\x64\Debug\TEST.exe (進程 29636)已退出,代碼為 0。 按任意鍵關閉此窗口. .

20220403 浮點數轉字符串

參考文章:C語言把浮點數轉換為字符串

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的C语言sprintf函数(发送格式化输出到 str 所指向的字符串)(format 标签属性)(字符串拼接)(数字转字符串、浮点数转字符串)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。