必須掌握sprintf函式的用法

2021-10-06 21:37:34 字數 2007 閱讀 1731

這幾天總遇到sprintf,下面自己來小小地總結下~

srpintf()函式的功能非常強大:效率比一些字串操作函式要高;而且更具靈活性;可以將想要的結果輸出到指定的字串中,也可作為緩衝區,而printf只能輸出到命令列上~

標頭檔案:stdio.h

函式功能:格式化字串,將格式化的資料寫入字串中。

函式原型:int sprintf(char *buffer, const char *format, [argument]…)

引數:(1)buffer:是char型別的指標,指向寫入的字串指標;

(2)format:格式化字串,即在程式中想要的格式;

(3)argument:可選引數,可以為任意型別的資料;

函式返回值:buffer指向的字串的長度;

用處:(1)格式化數字字串:在這點上sprintf和printf的用法一樣,只是列印到的位置不同而已,前者列印給buffer字串,後者列印給標準輸出,所以sprintf也可以用來將整型轉化為字串,比itoa效率高且如此地簡便~比如:sprintf(buffer, 「%d」, 123456);執行後buffer即指向字串「123456」~

(2)連線字元:

下面通過兩個例子來說明這個問題:

(a)連線以』\0』結束的字串:

[cpp]view plain

copy

print

?#include

int main()  

#include

intmain

()

執行結果:

(b)連線結尾沒有』\0』的字元陣列或字串緩衝區:

[cpp]view plain

copy

print

?#include

int main()  

;  char b = ;  

char buffer[10];  

sprintf(buffer, 」%.4s%.4s」, a, b);  

printf(」%s\n」, buffer);  

return 0;  

}  

#include

intmain

()

;char b = ;

char buffer[

10];

sprintf(buffer,

"%.4s%.4s", a, b);

printf(

"%s\n", buffer);

return

0;

}

執行結果:

如果第二種情況的程式中,sprintf的format部分為」%4s%4s」或」%s%s」,執行結果均為:

(c)如果我們想動態獲取要處理的字元緩衝區長度,則將上面sprintf改為:sprintf(buffer, 「%.*s%.*s」, sizeof(a), a, sizeof(b), b);即可~

(3)利用sprintf中的返回值:在」aov網路和拓撲(二)——實現「篇中,有這樣一行程式:pos += sprintf(output+pos, 「%d 「, j+1); 它的作用是什麼呢?

因為sprintf函式的返回值為output+pos所指向字串的長度,所以對於pos來說,相當於執行了一次pos+=sizeof(output+pos),如果這條語句放在乙個迴圈裡,則第二次執行sprintf時output+pos隨即指向了當前緩衝區的末尾(注意不是output的末尾!否則會讀取非法記憶體!),這樣就可以生成乙個具有一定規則的字串了~寫個例子:

[cpp]view plain

copy

print

?#include

int main()  

#include

intmain

()

執行結果:

必須掌握的排序

大神總結的很好。學而時習之,善於總結。非常恨那些把演算法排序之類的搞得異常麻煩的人,盡可能簡單一點,簡單了,容易理解了,才好記,上了戰場,才用得著.人家的不好用,只好自己總結,重寫原理與過程.口訣 冒泡 n 1,n i 1,比的是j與j 1 插入 n 1,i 1,比的是i 1與j 選擇 n,n,開始...

sprintf 函式的用法

最近在做畢業設計,裡面需要把圖形的座標轉換為字元來檢驗圖形座標的正確與否。所以較多的用到了sprintf 函式。例如 int sign 100 char s1 10 sprintf s1,d sign pdc textout 0,0,s1 這裡就把sprintf 函式的用法總結一下。int spri...

sprintf函式的用法

sprintf 格式化輸出函式 圖形 功能 函式sprintf 用來作格式化的輸出。用法 此函式呼叫方式為int sprintf char string,char format,arg list 說 明 函式sprintf 的用法和printf 函式一樣,只是sprintf 函式給出第乙個引數str...