Có nhiều cách để chuyển một ký tự char thành std::string trong C++. Dưới đây là 3 phương pháp phổ biến:
Ví dụ hoàn chỉnh
#include <iostream>
#include <string>
#include <sstream>
int main() {
char c = 'm';
// Cách 1: Constructor của string
std::string s1(1, c);
std::cout << "Constructor: " << s1 << '\n';
// Cách 2: stringstream
std::string s2;
std::stringstream ss;
ss << c;
ss >> s2;
std::cout << "Stringstream: " << s2 << '\n';
// Cách 3: push_back
std::string s3;
s3.push_back(c);
std::cout << "push_back: " << s3 << std::endl;
return 0;
}
Kết quả
Constructor: m Stringstream: m push_back: m
Chi tiết các phương pháp
1. Constructor string (Khuyến nghị nhất)
std::string s(1, c);
Tạo string với 1 ký tự c. Hiệu quả, rõ ràng, không phụ thuộc thư viện thêm.
2. stringstream
std::stringstream ss; ss << c; std::string s; ss >> s;
Phù hợp khi cần format phức tạp, nhưng chậm hơn do overhead stream.
3. push_back
std::string s; s.push_back(c);
Thêm ký tự vào cuối string rỗng. Hữu ích khi xây dựng string dần dần.
4. Các cách khác (C++17+)
// C++17: string_view (chỉ xem, không copy)
std::string_view sv(&c, 1);
// C++20: format
std::string s = std::format("{}", c);