請問關於 C++ 的 string 型別

string 在 C++ 裡面算是 STL 裡面提供的標準容器之一,也提供了相當多的功能函數,像是 find, replace ... 之類的,但我卻沒有找到格式化字串的函數,請問用過的人可以說明一下,如果使用 string 的時候,要輸出格式化字串要怎麼處理嗎?例如我用 char buf[80];我想要輸出 int i=10;char c='a';double pi=3.14;之前寫法可以是:sprintf(buf,"i=%5d, h=%5x, c=%c, pi=%5f,",i,i,c,pi);那麼用 string 型別宣告的變數,要如何達到相同的效果呢?
Update: To yen_hao_chen:
你的說明不是很好了解,我看到一堆 &... 這樣的文章我很難懂
另外,cout 不是指標準輸出嗎?但問題是我不一定要把資料輸出到標準輸出上面啊?我想要的只是格式...
Update 2: 嗯~~我又研究一下,你寫的有點看得懂啦,好像要用另外一個型別的變數來做中間變數,... string,但這樣的效果並沒有比 sprintf 好, sprintf 可以在同一個字串內,用簡單的識別字變換格式化條件,你這做法做不到;而且這樣的做法... char buf[80]; 填資料高明啊~~
Update 3: 嗯~~好吧,我承認你說得對,你的確有回答了問題,但問題是,有沒有更好的方法來格式... Format 或 sprintf 之類的﹚
Update 4: 唉~~我承認你說得沒錯,但不管怎麼說,如此的格式化方法,都必須先產生一個中介物件... char buf[80] 就能完成格式化字串填入,如此比較之下,在這方面的表現不就是 string 反而不如 char* ??
3 answers 3