連接std::string 和int
組合std::string 和int 形成單一字串可以是看似簡單的任務,但可能會帶來一些挑戰。讓我們來處理給定的範例:
std::string name = "John"; int age = 21;
要將這些元素連接到“John21”,可以使用多種方法。
使用Boost
使用Boost的lexical_cast,可以將int轉換為字串並追蹤它:
#include <boost/lexical_cast.hpp> std::string result = name + boost::lexical_cast<std::string>(age);
使用C 11
在C 11中,std::to_string 函數提供了一種將int 轉換為字串的便捷方法:
std::string result = name + std::to_string(age);
與FastFormat
FastFormat 提供用於字串連接的Format 和Write 方法:
#include <fastformat/format.hpp> fastformat::fmt(result, "{0}{1}", name, age); fastformat::write(result, name, age);
使用{fmt} 庫
{ fmt} 庫為字符串提供了簡潔的語法格式化:
#include <fmt/core.h> std::string result = fmt::format("{}{}", name, age);
使用IOStreams
使用IO 流是一種更詳細但標準的 C方法:
#include <sstream> std::stringstream sstm; sstm << name << age; std::string result = sstm.str();
與itoa
Itoa (Integer-to-String) 是將int 轉換為字串的非標準擴充:
#include <stdlib.h> char numstr[21]; // Ensure sufficient buffer size std::string result = name + itoa(age, numstr, 10);
與sprintf
Sprintf 是另一個非標準將 int 格式化為字串的擴充:
#include <cstdio> char numstr[21]; // Ensure sufficient buffer size sprintf(numstr, "%d", age); std::string result = name + numstr;
With STLSoft的integer_to_string
STLSoft提供了一個專門的函數將int轉換為字串:
#include <stlsoft/string_algo.h> char numstr[21]; // Ensure sufficient buffer size std::string result = name + stlsoft::integer_to_string(numstr, 21, age);
與STLSoft的winstl::int_to_string
與STLSoft的winstl::int_to_string與STLSoft的winstl::int_to_string#include <stlsoft/winstl/int_to_string.hpp> std::string result = name + winstl::int_to_string(age);
與STLSoft的winstl::int_to_string與STLSoft的winstl::int_to_string
此功能針對Windows,提供高效、安全的轉換:#include <Poco/NumberFormatter.h> std::string result = name + Poco::NumberFormatter().format(age);
用Poco NumberFormatter
Poco 的NumberFormatter 可以用來將數字格式化為字串:綜上所述,選擇的方法可能會根據您的特定要求和平台而有所不同。在選擇最合適的連接 std::string 和 int 的解決方案時,請考慮效能、安全性和可移植性。以上是如何在 C 中有效連接 std::string 和 int ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!