2016-12-08 2 views
0

Y at-il fonction C/C++ 11 commeLa copie de l'emplacement A à l'emplacement B à la source wchar * à wchar de destination * à partir de l'emplacement C, sans nul final

whcar_t* source,destiantion; 
int location; 

copy(source,destination,location,partOfSource); 

Ce copies partOfSource wchar-s à partir de source à destination, à partir de l'emplacement dans la destination et l'emplacement 0 dans la source, sans terminer la chaîne de destination avec L '\ 0'?

Merci!

+2

C ou C++? C++ utilise 'std :: wstring' tandis que C utilise' wchar_t * '. – Boiethios

+0

La bibliothèque standard C++ possède de nombreuses [fonctions algorithmiques] (http://en.cppreference.com/w/cpp/algorithm), dont quelques-unes pour [copier des données] (http://en.cppreference.com/w/ cpp/algorithm/copy_n) entre les conteneurs. –

+0

Oh, et il n'y a pas de "C/C++". Soit vous programmez en C, soit vous programmez en C++. Ce sont deux langues très différentes. –

Répondre

0

Il existe une fonction pour cela dans la bibliothèque standard C++. Cela fonctionne pour tous les types pointus (char, wchar_t, int, whatever) et traite toutes les valeurs de manière égale (pas de traitement spécial pour une valeur de fin). Cela fonctionne également pour tous les types d'itérateurs avant, pas seulement les pointeurs.

std::copy(source, std::next(source, partOfSource), std::next(destination, location)); 
+0

Qu'en est-il des bords? Copie-t-il la destination + l'emplacement, ou jusqu'à ce que cela se produise? Merci, de toute façon, c'est ma réponse! – Vess

+0

@Vess Copie dans la destination à partir de 'destination + location'. – user2079303