I have a vector of unsigned char where I copy bytes in C++. I convert all primitive types to bytes and copy to this vector of char (which is interpreted as bytes in C++). Now I am copying also strings. But I am not sure if I am converting strings to bytes. If you take a look at my output when I am `printing the vector` of unsigned char I am printing bytes from `double` `int` `float` but I am printing the real string of my variable `testString`. So I suppose that I am not inserting bytes of this `testString` on my vector of unsigned char. How should I do that?
Thanks

```
    const std::string lat = "lat->", alt = "alt->", lon = "lon->", testString = "TEST-STRING";
    double latitude = 10.123456;
    double longitude = 50.123456;
    double altitude = 1.123456;

    std::vector<unsigned char> result(
            sizeof(latitude) + sizeof(longitude) + sizeof(altitude) + testString.length());

    std::cout << "copying to the vector" << std::endl;
    memcpy(result.data(), &longitude, sizeof(longitude));
    memcpy(result.data() + sizeof(longitude), &latitude, sizeof(latitude));
    memcpy(result.data() + sizeof(longitude) + sizeof(latitude), &altitude, sizeof(altitude));
    memcpy(result.data() + sizeof(longitude) + sizeof(latitude) + sizeof(altitude), testString.c_str(),
           testString.length() + 1);
    std::cout << "copied to the vector\n" << std::endl;

    std::cout << "printing the vector" << std::endl;
    for (unsigned int j = 0; j < result.size(); j++) {
        std::cout << result[j];
    }
    std::cout << std::endl;
    std::cout << "printed the vector\n" << std::endl;

    // testing converting back ...................
    std::cout << "printing back the original value" << std::endl;
    double dLat, dLon, dAlt;
    std::string value;

    memcpy(&dLon, result.data(), sizeof(longitude));
    memcpy(&dLat, result.data() + sizeof(longitude), sizeof(latitude));
    memcpy(&dAlt, result.data() + sizeof(longitude) + sizeof(latitude), sizeof(altitude));
    value.resize(testString.length());
    memcpy(&value[0], result.data() + sizeof(longitude) + sizeof(latitude) + sizeof(altitude),
           sizeof(value.data()) + testString.size());

    std::cout << alt << dAlt;
    std::cout << lat << dLat;
    std::cout << lon << dLon;
    std::cout << " " << value << std::endl;
    std::cout << "printed back the original value\n" << std::endl; 

```

output:

```
copying to the vector
copied to the vector

printing the vector
[?�gI@m���5?$@l������?TEST-STRING
printed the vector

printing back the original value
alt->1.12346lat->10.1235lon->50.1235 TEST-STRING
printed back the original value

```