首頁 >後端開發 >C++ >如何在 C 中有效連接 std::string 和 int ?

如何在 C 中有效連接 std::string 和 int ?

Linda Hamilton
Linda Hamilton原創
2025-01-03 16:42:40843瀏覽

How to Efficiently Concatenate a std::string and an int in C  ?

連接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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn