Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Cekap Menggabungkan std::string dan int dalam 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;
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);
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);
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);
Dengan perpustakaan {fmt}
{ perpustakaan fmt} menyediakan sintaks ringkas untuk rentetan pemformatan:
#include <fmt/core.h> std::string result = fmt::format("{}{}", name, age);
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();
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);
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;
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);
Dengan winstl::int_to_string STLSoft
#include <stlsoft/winstl/int_to_string.hpp> std::string result = name + winstl::int_to_string(age);
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);
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!