1 最为熟知的就是sprintf了,不多说。
2 假如你用Qt的话,还可以用QString::arg()方法
3 这里着重讲讲std::stringstream。它是C++17标准引进的。详情可见
integer - Convert a number to a string with specified length in C++ - Stack Overflowhttps://stackoverflow.com/questions/225362/convert-a-number-to-a-string-with-specified-length-in-c
#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不会加锁。