我知道字符串的起始地址(例如char* buf
)和字符串的最大长度int l;
(即字符总数小于或等于l
).
string
从指定的内存段获取值的最简单方法是什么?换句话说,如何实施string retrieveString(char* buf, int l);
.
编辑:内存保留用于写入和读取可变长度的字符串.换句话说,int l;
表示内存的大小而不是字符串的长度.
Ben*_*ley 19
std::string str(buffer, buffer + length);
Run Code Online (Sandbox Code Playgroud)
或者,如果字符串已存在:
str.assign(buffer, buffer + length);
Run Code Online (Sandbox Code Playgroud)
编辑:我仍然不完全确定我理解这个问题.但是,如果它像JoshG建议的那样,你想要最多的length
字符,或者直到一个空的终止符,无论哪个先出现,那么你可以使用它:
std::string str(buffer, std::find(buffer, buffer + length, '\0'));
Run Code Online (Sandbox Code Playgroud)
char *charPtr = "test string";
cout << charPtr << endl;
string str = charPtr;
cout << str << endl;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
106564 次 |
最近记录: |