Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Cekap Menggabungkan std::string dan int dalam C ?

Bagaimana untuk Cekap Menggabungkan std::string dan int dalam C ?

Linda Hamilton
Lepaskan: 2025-01-03 16:42:40
asal
880 orang telah melayarinya

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

Menggabungkan std::string dan int

Menggabungkan std::string dan int untuk membentuk rentetan tunggal boleh menjadi tugas yang kelihatan mudah, namun ia mungkin memberikan beberapa cabaran. Mari kita atasi contoh yang diberikan:

std::string name = "John";
int age = 21;
Salin selepas log masuk

Untuk menggabungkan elemen ini menjadi "John21," beberapa pendekatan tersedia.

Dengan Boost

Menggunakan Lexical_cast Boost, anda boleh menukar int kepada rentetan dan tambahkan ia:

#include <boost/lexical_cast.hpp>

std::string result = name + boost::lexical_cast<std::string>(age);
Salin selepas log masuk

Dengan C 11

Dalam C 11, fungsi std::to_string menyediakan cara mudah untuk menukar int kepada rentetan:

std::string result = name + std::to_string(age);
Salin selepas log masuk

Dengan FastFormat

FastFormat menawarkan kaedah Format dan Tulis untuk penggabungan rentetan:

#include <fastformat/format.hpp>
fastformat::fmt(result, "{0}{1}", name, age);
fastformat::write(result, name, age);
Salin selepas log masuk

Dengan perpustakaan {fmt}

{ perpustakaan fmt} menyediakan sintaks ringkas untuk rentetan pemformatan:

#include <fmt/core.h>
std::string result = fmt::format("{}{}", name, age);
Salin selepas log masuk

Dengan IOStreams

Menggunakan strim IO ialah pendekatan yang lebih verbose tetapi standard C:

#include <sstream>

std::stringstream sstm;
sstm << name << age;
std::string result = sstm.str();
Salin selepas log masuk

Dengan itoa

Itoa (Integer-to-String) ialah sambungan bukan standard yang menukarkan int kepada rentetan:

#include <stdlib.h>
char numstr[21]; // Ensure sufficient buffer size
std::string result = name + itoa(age, numstr, 10);
Salin selepas log masuk

Dengan sprintf

Sprintf ialah satu lagi sambungan bukan standard yang memformatkan int menjadi rentetan :

#include <cstdio>
char numstr[21]; // Ensure sufficient buffer size
sprintf(numstr, "%d", age);
std::string result = name + numstr;
Salin selepas log masuk

Dengan STLSoft's integer_to_string

STLSoft menyediakan fungsi khusus untuk menukar int kepada rentetan:

#include <stlsoft/string_algo.h>
char numstr[21]; // Ensure sufficient buffer size
std::string result = name + stlsoft::integer_to_string(numstr, 21, age);
Salin selepas log masuk

Dengan winstl::int_to_string STLSoft

#include <stlsoft/winstl/int_to_string.hpp>
std::string result = name + winstl::int_to_string(age);
Salin selepas log masuk

Dengan Poco NumberFormatter

Poco's NumberFormatter boleh digunakan untuk memformat nombor sebagai rentetan:

#include <Poco/NumberFormatter.h>
std::string result = name + Poco::NumberFormatter().format(age);
Salin selepas log masuk

Ringkasnya, pendekatan yang dipilih mungkin berbeza bergantung pada keperluan dan platform khusus anda. Pertimbangkan prestasi, keselamatan dan mudah alih apabila memilih penyelesaian yang paling sesuai untuk menggabungkan std::string dan int.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Menggabungkan std::string dan int dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan