ホームページ > バックエンド開発 > C++ > C で std::string と int を効率的に連結する方法

C で std::string と int を効率的に連結する方法

Linda Hamilton
リリース: 2025-01-03 16:42:40
オリジナル
858 人が閲覧しました

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

std::string と int の連結

std::string と int を組み合わせて 1 つの文字列を形成すると、一見簡単な作業のように見えますが、いくつかの課題が生じる可能性があります。与えられた例に取り組んでみましょう。

std::string name = "John";
int age = 21;
ログイン後にコピー

これらの要素を「John21」に連結するには、いくつかのアプローチが利用可能です。

Boost を使用する

使用Boostのlexical_castでは、intを文字列に変換して追加できますit:

#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} ライブラリを使用する

The { 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();
ログイン後にコピー

いとあとは

いとあ(Integer-to-String) は、int を文字列に変換する非標準の拡張機能です。

#include <stdlib.h>
char numstr[21]; // Ensure sufficient buffer size
std::string result = name + itoa(age, numstr, 10);
ログイン後にコピー

With 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

この機能は Windows に固有であり、効率的で安全な機能を提供します。変換:

#include <stlsoft/winstl/int_to_string.hpp>
std::string result = name + winstl::int_to_string(age);
ログイン後にコピー

Poco NumberFormatter を使用

Poco の NumberFormatter は、数値を文字列としてフォーマットするために使用できます:

#include <Poco/NumberFormatter.h>
std::string result = name + Poco::NumberFormatter().format(age);
ログイン後にコピー

要約すると、選択するアプローチは、特定の要件とプラットフォームによって異なる場合があります。 std::string と int を連結するための最適なソリューションを選択するときは、パフォーマンス、安全性、移植性を考慮してください。

以上がC で std::string と int を効率的に連結する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート