sprintf將數字轉為字串,或格式化字串
阿新 • • 發佈:2019-02-20
當將數字轉字串的itoa
函式不可用時,==可以使用sprintf
函式==,可達到一樣的效果,且移植性更強,同時也可以使用sprintf
函式來格式化字串,功能強大。
例:
sprintf(*p, "%d", num); //將num轉為字串輸入到 p 中
這裡也可以形象的理解為是先將num
用printf
列印(在螢幕上輸出後肯定就是一個一個的字元了),然後再將螢幕上的輸出結果再輸入進相應的字串中。
按上這種理解,自然也就可以在其中加入其它內容,因為只要是printf能列印到螢幕上的內容都能進行新增,實際也如此(注:此處只是比喻!具體sprintf
實現原理暫未深入研究)。
例:
int a = 123;
char b[] = "example";
char c[20];
sprintf(c, "%s - %d", b, a);
執行上述語句後C
中的內容便會如下所示:
c[0] | c[1] | c[2] | c[3] | c[4] | c[5] | c[6] | c[7] | c[8] | c[9] | c[10] | c[11] | c[12] | c[13] |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
e | x | a | m | p | l | e | 空格 | - | 空格 | 1 | 2 | 3 | \0 |
便會將上述這14個字元存入到c字串中,==後面會自帶一個“\0”!同時 c 中剩餘字元是不會被改動的,原來是什麼就是什麼,會發生改動的只有這14個字元。==