I know the starting address of the string(e.g., char* buf) and the max length int l; of the string(i.e., total number of characters is less than or equal to l).
What is the simplest way to get the value of the string from the specified memory segment? In other words, how to implement string retrieveString(char* buf, int l);.
EDIT: The memory is reserved for writing and reading string of variable length. In other words, int l;indicates the size of the memory and not the length of the string.
We can convert a char to a string object in java by using the Character. toString() method.
A pointer may be defined as pointing to a character string. Remember that if the declaration is, char *pointer = "Sunday"; then the null character { '\0' } is automatically appended to the end of the text string.
std::string str(buffer, buffer + length); Or, if the string already exists:
str.assign(buffer, buffer + length); Edit: I'm still not completely sure I understand the question. But if it's something like what JoshG is suggesting, that you want up to length characters, or until a null terminator, whichever comes first, then you can use this:
std::string str(buffer, std::find(buffer, buffer + length, '\0'));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With