2012-03-27 141 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