2012-06-05 53 views
14

Cách tốt nhất để chuyển đổi từ số std::array<char, N> thành số std::string là gì?std :: array <char, N> to std :: string

Tôi đã thử tạo phương thức mẫu nhưng không có may mắn. Tôi nghĩ rằng các kỹ năng C++ của tôi chỉ không bị trầy xước. Có một cách thành ngữ để làm điều này trong C + +?

+0

['std :: copy'] (http://msdn.microsoft.com/en-us/library/x9f6s1wf (v = vs.80) .aspx) –

Trả lời

32

tôi sẽ không nói nó là "cách tốt nhất", nhưng một cách là sử dụng std::string 's iterator constructor:

std::array<char, 10> arr; 
... // fill in arr 
std::string str(std::begin(arr), std::end(arr)); 
+0

Wow. Xin lỗi vì đã hỏi một câu hỏi tầm thường như vậy. –

+6

'std :: array' cũng có' begin' và 'end' làm hàm thành viên. –

+0

Vâng, tôi sẽ trả lời 'std :: string (arr.begin(), arr.end())'. Quá muộn. –

8

Nếu có một null chấm dứt chuỗi trong mảng vậy:

std::array<char, 4> arr = {'a','b','c',0}; 
std::string str(arr.data()); 
Các vấn đề liên quan