1、
sprintf 跟printf 在用法上幾乎一樣,只是列印的目的地不同而已,前者列印到字串中,後者則直接在命令列上輸出。這也導致sprintf 比printf 有用得多。
sprintf 是個變參函式,定義如下:
int sprintf( char *buffer, const char *format [, argument] ... );
除了前兩個引數型別固定外,後面可以接任意多個引數。而它的精華,顯然就在第二個引數:格式化字串上。
格式化數字字串
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"
sprintf 的返回值
較少有人注意printf/sprintf 函式的返回值,但有時它卻是有用的,spritnf 返回了本次函式呼叫
最終列印到字元緩衝區中的字元數目。也就是說每當一次sprinf 呼叫結束以後,你無須再呼叫一次
strlen 便已經知道了結果字串的長度。如:
int len = sprintf(s, "%d", i);
對於正整數來說,len 便等於整數i 的10 進製位數。
eg.
[cpp]view plain
copy
print?
len=sprintf(page,
"%s='%s'/n"
,fb_data->name,fb_data->value); 2、
sscanf()函式的用法int sscanf( const char *buffer, const char *format [, argument ] ... )
其實sscanf函式和scanf函式很像,只不過是scanf是從控制台下使用者自己輸入的,而sscanf是從buffer中讀取資料,而不用使用者輸入了(相當於使用者輸入的字串是buffer).後面的argument是要儲存的位置。在匹配的過程中,只要遇到不匹配的情況,sscanf就結束執行。
sscanf函式返回值的含義是有多少個變數被賦值。
[cpp]view plain
copy
print?
#include
#include
using
namespace
std;
const
intmaxn = 3000;
intf[maxn];
intmain()
sscanf 和 sprintf的用法
一 sprintf sprint函式原型為int sprintf char str,const char format,作用是格式化字串,具體功能如下所示 1 將數字變數轉換為字串。2 得到整型變數的 16進製制和 8進製字串。3 連線多個字串。舉例如下 char str 256 int data ...
sscanf和sprintf的用法
標準庫函式定義 函式在任何平台上都被支援 且保證函式功能一致 基本一致 使得你的同乙個原始碼,在windows編譯執行的結果 和在linux上編譯執行的結果相同。sprintf與sscanf 實際工程中常用的一對函式 sprintf 格式化字串,首字母s表示string sscanf 解析字串 例 ...
sscanf和sprintf函式的用法
sscanf和sprintf是scanf和printf家族的一對成員,用於處理和分析字串非常強大的兩個函式。標頭檔案 stdio.h 原型 cpp view plain copy intsscanf const char buffer,const char format,intsprintf cha...