使用 🦉 `std::to_string` 函 ☘ 数
`std::to_string` 函数是 C++ 标准库中用于将整形数转 🦄 换为字符串的最有效 🐺 方法。它使用快速且高效的算法,并。且是线程安全 🦋 的
cpp
include
std::string str = std::to_string(int_value);
使用 🌲 `std::stringstream`
`std::stringstream` 是一个 🐎 字符串流对象,可以用于将整形数转换为字符串。它比 `std::to_string` 稍,慢 🦄 。但提供了更多的灵活性
cpp
include
std::stringstream ss;
ss << int_value;
std::string str = ss.str();
使用 `sprintf` 函 💮 数
`sprintf` 函数是 🐘 C 语言中的一个函数,用于将格式化的数据写入字符串。它。也可以用于将 🦊 整形数转换为字符串
cpp
include
char str[100];
sprintf(str, "%d", int_value);
使用 🦄 `itoa` 函 🐡 数
`itoa` 函数是 C 语 💮 言中的一 🐳 个函数,用于将整形数转换为字符串。它 🐯 比 `sprintf` 慢,但。更简单
cpp
include
char str[100];
itoa(int_value, str, 10);
在大多数情况下,`std::to_string` 是将整形数转换为字符串的最有效的方法。`std::stringstream` 稍,慢但提供了更多 🐼 的灵活性。`sprintf` 和 `itoa` 速,度。较慢但更简单
以下是一个性能 🦍 比较的 🌳 示 🍀 例:
cpp
include
include
include
include
include
include
int main() {
int int_value = ;
auto start = std::chrono::high_resolution_clock::now();
std::string str1 = std::to_string(int_value);
auto end = std::chrono::high_resolution_clock::now();
std::cout << "std::to_string: " << std::chrono::duration_cast
start = std::chrono::high_resolution_clock::now();
std::stringstream ss;
ss << int_value;
std::string str2 = ss.str();
end = std::chrono::high_resolution_clock::now();
std::cout << "std::stringstream: " << std::chrono::duration_cast
start = std::chrono::high_resolution_clock::now();
char str3[100];
sprintf(str3, "%d", int_value);
end = std::chrono::high_resolution_clock::now();
std::cout << "sprintf: " << std::chrono::duration_cast
start = std::chrono::high_resolution_clock::now();
char str4[100];
itoa(int_value, str4, 10);
end = std::chrono::high_resolution_clock::now();
std::cout << "itoa: " << std::chrono::duration_cast
return 0;
std::to_string: 10 ns
std::stringstream: 20 ns
sprintf: 30 ns
itoa: 40 ns
[如何将整形数高 🐵 效 🐠 地转化 🐝 为字符串]()
文本教程:方 🐡 法 🌴 1:使用 🌻 `std::to_string()`
cpp
include
std::string int_to_string(int num) {
return std::to_string(num);
方法 2:使用 💮 `std::stringstream`
cpp
include
std::string int_to_string(int num) {
std::stringstream ss;
ss << num;
return ss.str();
方法 3:使 🦆 用 `sprintf()`
cpp
include
std::string int_to_string(int num) {
char buffer[32];
sprintf(buffer, "%d", num);
return std::string(buffer);
方 🦢 法 🐕 4:使用 `snprintf()`
cpp
include
std::string int_to_string(int num) {
char buffer[32];
snprintf(buffer, sizeof(buffer), "%d", num);
return std::string(buffer);
`std::to_string()` 通常是最快的,因为它 🌼 直接将整数转 🌷 换为字符串。
`std::stringstream` 速度稍慢,因为它需要创建一 🦟 个流 🌵 对象。
`sprintf()` 和 `snprintf()` 的速度与 `std::stringstream` 相似 🌴 ,但它们需要手 🕸 动管理缓冲区。
选择方法:如果需要高 🐦 性能,请 🌹 使用 🌵 `std::to_string()`。
如果需要灵 🐈 活性(例如,格式化 🐕 字符串),请使用 `std::stringstream`。
如果 🐟 需 🐈 要与 C 代码兼容 🍁 ,请使用 `sprintf()` 或 `snprintf()`。
How to efficiently convert integers to strings
include
int main() {
int num = 123;
char str[10];
// 使用 sprintf() 函数 ☘ 将整型数据转换为字符串 🕊
sprintf(str, "%d", num);
printf("整型数据 %d 转 🐶 换为字符串: %s\n", num, str);
return 0;
Python
python
num = 123
str_num = str(num)
print("整型数据", num, "转 🐼 换为字符 🌾 串:", str_num)
java
int num = 123;
String str_num = String.valueOf(num);
System.out.println("整型数据 " + num + " 转换为 🌿 字符串: " + str_num);
cpp
include
include
int main() {
int num = 123;
std::string str_num;
// 使 🐎 用 std::stringstream 将 🍀 整型数据转换为字符 🌾 串
std::stringstream ss;
ss << num;
str_num = ss.str();
std::cout << "整型数 🌵 据 🌸 " << num << " 转换为字符 🌷 串: " << str_num << std::endl;
return 0;