用字符串格式运算符替换C++字符串

C++ string substitution with the string format operator

本文关键字:字符串 C++ 替换 格式 运算符      更新时间:2023-10-16

我对C++有点陌生,来自python。我真正怀念的一个功能是字符串格式运算符。我看过很多例子,这些例子可以在printf()函数中使用,但是,有时只替换字符串变量中的占位符很方便。以下是python中使用mysqldb模块的示例:

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

你能用C++做一些类似的事情吗。我在谷歌上找不到任何例子。

查看Boost格式库。

它可以做一些类似的事情

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

你的意思是,你想用许多字符串片段和变量组成一个字符串吗?

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().