2012-06-05 20 views
14

Qual è il modo migliore per convertire daa std::string?std :: array <char, N> a std :: stringa

Ho provato a produrre un metodo di modello ma non ho avuto fortuna. Penso che le mie capacità in C++ non siano all'altezza. C'è un modo idiomatico di farlo in C++?

+0

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

risposta

32

Non dico è il "modo migliore", ma modo è quello di utilizzare std::string s' iterator constructor:

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

Wow. Ci scusiamo per aver fatto una domanda così banale. –

+6

'std :: array' ha anche' begin' e 'end' come funzioni membro. –

+0

Sì, stavo per rispondere 'std :: string (arr.begin(), arr.end())'. Troppo tardi. –

8

Se c'è una stringa terminata Null nella matrice così:

std::array<char, 4> arr = {'a','b','c',0}; 
std::string str(arr.data()); 
Problemi correlati