I have a string defined as std::string header = "00110033";
now I need the string to hold the byte values of the digits as if its constructed like this
char data_bytes[] = { 0, 0, 1, 1, 0, 0, 3, 3};
std::string header = new std::string(data_bytes, 8).c_str());
I converted the initial string to int
array using atoi
. Now i'm not sure how to make the string out of it. Let me know if there is any better approach.
You can do this:
Assuming you're using a "fairly normal" system where the numeric values of
'0'
to'9'
are consecutive, you can just iterate over each element and subtract'0'
:If integ[] is the integer array, and s is the final string we wish to obtain,
Do this:
Or maybe, you want to do this:
Demo at ideone : http://ideone.com/RzrYY
EDIT:
Last
\0
in data_bytes is necessary. Also see this interesting output here: http://ideone.com/aYtlLPS: I didn't know this before, thanks to Ashot I came to know this difference by experimenting!
you could write a little function
untested!
a slightly different approach