2012-03-27 217 views
2

我對C++來說有點新,來自python。我真正想念的一項功能是字符串格式運算符。我已經看到了很多可以在printf()函數中使用的示例,但是,有時候它只是用於將佔位符替換爲字符串變量。這裏是python使用mysqldb模塊的一個例子:用字符串格式運算符C++字符串替換

... 
stmt = 'INSERT INTO %s(pid, starttime) VALUES("%s","%s")' % ('pids', int(p0.pid), episode[0][1]) 
cursor.execute(stmt) 

你可以在C++中做類似的事情嗎?我沒有發現任何使用Google搜索的例子。

+1

不要那樣做 - 您正在打開自己註冊到SQL注入!使用您選擇的數據庫API提供的任何工具來執行常規參數綁定... – 2012-03-27 00:55:31

+0

這只是一個示例。此功能還有很多其他應用程序。 – nomadicME 2012-03-27 01:45:46

回答

4

查看Boost format library

它可以這樣做

str(format("writing %s, x=%s : %d-th step \n") % "toto" % 40.23 % 50) 
4

你的意思是,你想編寫一個字符串中的一些字符串片段和變量?

int someInt = 10; 
std::wstringstream wss; 
wss << L"Some string stuff and then " << someInt << L" which was an int" << std::endl; 

然後,您可以將wstringstream的內容轉換爲其他格式。爲了得到一個C字符串,我相信這個調用是wss.str()。c_str()。

+0

這很麻煩。我打算這麼做,但我認爲必須有更好的方法。 C++中沒有字符串替換? – nomadicME 2012-03-27 01:41:18

+0

可能稍微比Java中的字符串串聯更麻煩。否則,它是一種非常直接的方式來實現該功能,而無需任何額外的庫。 – ShiggityShiggityShwa 2012-03-27 01:51:02

+0

需要額外的庫。謝謝。 – nomadicME 2012-03-27 02:07:38