1 最为熟知的就是sprintf了,不多说。
2 假如你用Qt的话,还可以用QString::arg()方法
3 这里着重讲讲std::stringstream。它是C++17标准引进的。详情可见
#include <sstream>
#include <iomanip>
std::stringstream ss;
ss << 900;
std::string s = ss.str();
s 的内容就变成了"900"
如果你需要字符串占据固定的长度,比如5个字符,那么代码改为如下:
#include <sstream>
#include <iomanip>
std::stringstream ss;
ss << std::setw(5) << 900;
std::string s = ss.str();
s的内容变成了" 900"。900前面有两个空格。
如果你想用其他字符,比如0,代替空格,代码改为如下:
#include <sstream>
#include <iomanip>
std::stringstream ss;
ss << std::setw(5) << std::setfill('0') << 900;
std::string s = ss.str();
最后指出一点,stringstream调用时,可能会加锁。所以在多线程情况下,可能影响并行。而sprintf不会加锁。