1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| #include <iostream>
#include <string>
#include <algorithm>
void FillCharArray(char const * iSrc, size_t iSizeSrc, char * iDest)
{
struct CharFiller
{
size_t m_index;
char * m_dest;
CharFiller(char * iDest): m_index(0), m_dest(iDest)
{}
void operator () (char iChar)
{
m_dest[m_index++] = iChar;
}
};
std::string src(iSrc,iSizeSrc);
CharFiller filler(iDest);
std::for_each(src.begin(), src.end(), filler);
}
int main(int argc, char* argv[])
{
size_t msg_size = 8;
char * Message = new char[msg_size];
FillCharArray("salutgro", msg_size, Message);
size_t prefix_size = 4;
char * Prefix = new char[msg_size];
FillCharArray("0_1_", prefix_size, Prefix);
size_t new_msg_size = prefix_size + msg_size;
char * NewMessage = new char[new_msg_size];
FillCharArray(Prefix, prefix_size, NewMessage);
FillCharArray(Message, msg_size, NewMessage + prefix_size);
// Check the result is correct
std::cout << std::string(NewMessage,new_msg_size) << std::endl;
delete [] Message;
delete [] Prefix;
delete [] NewMessage;
return 0;
} |
Partager