Home >Backend Development >C++ >How Can I Efficiently Concatenate Strings and Integers in C ?
Concatenating a string and an integer in C is a common task, but it can be tricky to find the most efficient and concise way to do it. Various methods can be used to achieve this, and the choice depends on factors such as performance, safety, and platform compatibility.
1. Using Boost's lexical_cast:
#include <boost/lexical_cast.hpp> std::string name = "John"; int age = 21; std::string result = name + boost::lexical_cast<std::string>(age);
2. Using C 11's std::to_string:
#include <iostream> std::string name = "John"; int age = 21; std::string result = name + std::to_string(age);
3. Using FastFormat.Format:
#include <FastFormat.h> std::string name = "John"; int age = 21; std::string result; fastformat::fmt(result, "{0}{1}", name, age);
4. Using FastFormat.Write:
#include <FastFormat.h> std::string name = "John"; int age = 21; std::string result; fastformat::write(result, name, age);
5. Using the {fmt} Library:
#include <fmt/format.h> std::string name = "John"; int age = 21; std::string result = fmt::format("{}{}", name, age);
6. Using IOStreams:
#include <iostream> #include <sstream> std::string name = "John"; int age = 21; std::stringstream sstm; sstm << name << age; std::string result = sstm.str();
7. Using itoa:
#include <cstdio> std::string name = "John"; int age = 21; char numstr[21]; // enough to hold all numbers up to 64-bits std::string result = name + itoa(age, numstr, 10);
8. Using sprintf:
#include <cstdio> std::string name = "John"; int age = 21; char numstr[21]; // enough to hold all numbers up to 64-bits sprintf(numstr, "%d", age); std::string result = name + numstr;
9. Using STLSoft's integer_to_string:
#include <stlsoft/integer_to_string.hpp> std::string name = "John"; int age = 21; char numstr[21]; // enough to hold all numbers up to 64-bits std::string result = name + stlsoft::integer_to_string(numstr, 21, age);
10. Using STLSoft's winstl::int_to_string():
#include <wintlsoft/int_to_string.h> std::string name = "John"; int age = 21; std::string result = name + winstl::int_to_string(age);
11. Using Poco's NumberFormatter:
#include <Poco/NumberFormatter.h> std::string name = "John"; int age = 21; std::string result = name + Poco::NumberFormatter().format(age);
The performance, safety, and compatibility characteristics of each method are detailed to help you choose the best approach for your specific needs.
The above is the detailed content of How Can I Efficiently Concatenate Strings and Integers in C ?. For more information, please follow other related articles on the PHP Chinese website!